溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【python項目實戰(zhàn)】BBS論壇 (1)搭建項目框架

發(fā)布時間:2020-07-04 13:01:05 來源:網(wǎng)絡(luò) 閱讀:1292 作者:浮爾魔司 欄目:數(shù)據(jù)庫



一、準(zhǔn)備工作:

Windows7-64位

python 2.7

mysql version: 5.7.12

django 1.9.5

IDE開發(fā)工具:pycharm 2.7


【python項目實戰(zhàn)】BBS論壇 (1)搭建項目框架



二、設(shè)計表結(jié)構(gòu)


主要涉及點:

1、表的ER圖,要設(shè)計邏輯,有哪些表,每個表有哪些屬性

2、models的 模型常用字段要熟練,本次使用的有:


CharField

ForeignKey

ImageField

TextField

DateTimeField

BooleanField

IntegerField

ManyToManyField

OneToOneField

    

##models.py 

from __future__ import unicode_literals

from django.db import models
from django.contrib.auth.models import User
# Create your models here.

# 帖子信息表
class Article(models.Model):
    title = models.CharField(u"文章標(biāo)題",max_length=255,unique=True)
    category = models.ForeignKey("Category",verbose_name=u"板塊")
    head_img = models.ImageField(upload_to="uploads")
    content = models.TextField(u"內(nèi)容")
    auther = models.ForeignKey("UserProfile")
    publish_date = models.DateTimeField(auto_now=True)
    hidden = models.BooleanField(default=True)
    priority = models.IntegerField(u"優(yōu)先級",default=1000)

    def __unicode__(self):
        return "<%s,author:%s>" %(self.title,self.auther)

#評論表
class Comment(models.Model):
    article = models.ForeignKey(Article)
    user = models.ForeignKey("UserProfile")
    parent_comment = models.ForeignKey('self',related_name='p_comment',blank=True,null=True)
    comment = models.TextField(max_length=1000)
    date = models.DateTimeField(auto_now=True)
    def __unicode__(self):
        return "<%s,user:%s>" %(self.comment,self.user)

#點贊數(shù)表
class ThumbUp(models.Model):
    article = models.ForeignKey('Article')
    user = models.ForeignKey('UserProfile')
    date = models.DateTimeField(auto_now=True)
    def __unicode__(self):
        return "<user:%s>" %(self.auther)

#板塊分類表
class Category(models.Model):
    name = models.CharField(max_length=64,unique=True)
    admin = models.ManyToManyField('UserProfile')
    def __unicode__(self):
        return self.name


# 用戶信息表
class UserProfile(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=32)
    groups = models.ManyToManyField('UserGroup')
    def __unicode__(self):
        return self.name

# 用戶組表
class UserGroup(models.Model):
    name = models.CharField(max_length=64,unique=True)
    def __unicode__(self):
        return self.name


三、settings.py 里面加入數(shù)據(jù)庫資源信息


    首先自己需要在mysql里面創(chuàng)建一個數(shù)據(jù)庫,名字叫s11bbs,然后編輯settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 's11bbs',
        'HOST':'',
        'USER':'root',
        'PASSWORD':'123',
        }
}


四、同步數(shù)據(jù)庫

cd 到manage.py 文件所在目錄


python manage.py migrate 

【python項目實戰(zhàn)】BBS論壇 (1)搭建項目框架


python manage.py makemigrations 

python manage.py migrate 

【python項目實戰(zhàn)】BBS論壇 (1)搭建項目框架


五、注冊數(shù)據(jù)庫表


在admin.py里加入,就能訪問django的后臺管理界面了,可以自己嘗試添加一些測試數(shù)據(jù)


http://127.0.0.1:8000/admin


##  admin.py 

from django.contrib import admin
import models
# Register your models here.


admin.site.register(models.Article,ArticleAdmin)
admin.site.register(models.Category,CategoryAdmin)
admin.site.register(models.Comment)
admin.site.register(models.ThumbUp)
admin.site.register(models.UserProfile)
admin.site.register(models.UserGroup)


【python項目實戰(zhàn)】BBS論壇 (1)搭建項目框架












向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI