真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

bbs項目前期準備和表設(shè)計

一、前期準備

1.新建一個django項目
2.連接mysql數(shù)據(jù)庫(注意需要在init文件里面書寫import pymysql),告訴django使用pymysql連接數(shù)據(jù)庫
3.靜態(tài)文件路徑在settings里配置一下,并且在項目文件夾下新建一個靜態(tài)文件夾
4.將需要用到bootstrap的css和js文件添加到static文件夾內(nèi)

二、bbs項目表設(shè)計

做一個項目最首要的表的設(shè)計,一個表設(shè)計不好,后續(xù)開發(fā)的地基就不牢!

創(chuàng)新互聯(lián)于2013年成立,先為睢縣等服務(wù)建站,睢縣等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為睢縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

"""
1.用戶表:要繼承AbstractUser類
擴展字段:
	phone:用戶電話
	avatar:用戶頭像
	create_time:創(chuàng)建時間

2.個人站點表:用戶輸入什么url就跳轉(zhuǎn)到對應(yīng)的站點
字段:
	site_name:站點名稱
	site_title:站點標題
	site_theme:站點主題

3.文章表:
字段:
	title:文章標題
	desc:文章簡介
	content:文章內(nèi)容
	create_time:發(fā)布時間
下述三個字段雖然可以從其他表中獲取,但是頻繁的跨表查詢效率較低,
可以直接在文章表里設(shè)計該字段,點贊數(shù)+1時只要同步給文章表里的該字段+1就行?。〝?shù)據(jù)庫字段優(yōu)化)
	up_num:點贊數(shù) 
	down_num:點踩數(shù)
	comment_num:評論數(shù)

4.文章分類表:
字段:
	name:分類名

5.文章標簽表:
字段:
	name:標簽名

6.點贊點踩表:記錄了哪個用戶給哪個文章點贊還是點踩
字段:
	user:用戶主鍵值  ForeignKey(to='UserInfo')
	article:文章主鍵值 ForeignKey(to='Article')
	is_up:是否點贊(布爾值字段類型)
	is_down:是否點踩(布爾值字段類型)

7.評論表:記錄哪個用戶給哪個文章評論了什么內(nèi)容
字段:
	user:用戶 ForeignKey(to='UserInfo')
	article:文章 ForeignKey(to='Article')
	content:評論內(nèi)容
	comment_time:評論時間
	# 評論內(nèi)容有跟評論和子評論的區(qū)別,跟評論是直接評論文章的,子評論是評論跟評論的
	parent:自關(guān)聯(lián)  ForeignKey(to='Comment',null=True) to里面也可以寫成self表示自己關(guān)聯(lián)自己
"""

七張表之間的關(guān)系

1.用戶表和個人站點表:一對一關(guān)系,外鍵建在用戶表

2.個人站點表和文章標簽表:一對多關(guān)系,外鍵建在文章標簽表

3.個人站點表和文章分類 表:一對多關(guān)系,外鍵建在文章分類表

4.個人站點和文章表:一對多關(guān)系,外鍵建在文章表

5.文章表和文章標簽表:多對多關(guān)系,外鍵建在文章表

6.文章表和文章分類表:一對多關(guān)系,外鍵建在文章分類表

接下來,我們就可以在models.py里創(chuàng)建對應(yīng)的表了!

bbs項目表創(chuàng)建源碼
from django.db import models
from django.contrib.auth.models import AbstractUser


# Create your models here.
# 1、用戶表:繼承AbstractUser類,需要先導(dǎo)入這個類
class UserInfo(AbstractUser):
    phone = models.BigIntegerField(verbose_name='電話',null=True)
    avatar = models.FileField(upload_to='avatar/',default='avatar/default.png',verbose_name='頭像')
    """
    給avatar字段傳文件對象,該文件會自動保存到upload_to='avatar/'指定的文件夾下,這個文件夾需要自己在項目文件夾下創(chuàng)建
    數(shù)據(jù)庫里的avatar字段只保存文件路徑,同時可以設(shè)置一個默認頭像
    """
    create_time = models.DateTimeField(auto_now_add=True,verbose_name='創(chuàng)建時間')
    # 用戶表與個人站點表一對一關(guān)系,外鍵建在用戶表
    blog = models.OneToOneField(to='Blog',on_delete=models.CASCADE,null=True)

# 2、個人站點表
class Blog(models.Model):
    site_name = models.CharField(verbose_name='站點名稱',max_length=64)
    site_title = models.CharField(verbose_name='站點標題',max_length=64)
    site_theme = models.CharField(verbose_name='站點主題',max_length=256) # 存的是css、js樣式的路徑

# 3、文章表
class Article(models.Model):
    title = models.CharField(verbose_name='文章標題',max_length=64)
    desc = models.CharField(verbose_name='文章摘要',max_length=256)
    content = models.TextField(verbose_name='文章內(nèi)容')
    create_time = models.DateTimeField(verbose_name='創(chuàng)建時間',auto_now_add=True)
    # 數(shù)據(jù)庫字段設(shè)計優(yōu)化
    up_num = models.IntegerField(verbose_name='點贊數(shù)',default=0)
    down_num = models.IntegerField(verbose_name='點踩數(shù)',default=0)
    comment_num = models.IntegerField(verbose_name='評論數(shù)',default=0)
    # 個人站點表和文章表一對多關(guān)系,外鍵建在文章表
    blog = models.ForeignKey(to='Blog',on_delete=models.CASCADE,null=True)
    # 文章表和文章分類表是一對多關(guān)系,外鍵建在文章表
    category = models.ForeignKey(to='Category',null=True,on_delete=models.CASCADE)
    # 多對多關(guān)系表的外鍵
    tag = models.ManyToManyField(to='Tag',through='Article2Tag',through_fields=('article','tag'))
    # 通過Article2Tag這個張表查article就把Article2Tag里的article字段放前面

# 文章表和標簽表的多對多表創(chuàng)建,采用的是半自動的方式,利用擴展自動和查詢
class Article2Tag(models.Model):
    article = models.ForeignKey(to='Article',null=True,on_delete=models.CASCADE)
    tag = models.ForeignKey(to='Tag',null=True,on_delete=models.CASCADE)


# 4、文章分類表
class Category(models.Model):
    name = models.CharField(verbose_name='分類名',max_length=32)
    # 個人站點表和文章分類表是一對多關(guān)系,外鍵建在文章分類表
    blog = models.ForeignKey(to='Blog',null=True,on_delete=models.CASCADE)


# 5、文章標簽表
class Tag(models.Model):
    name = models.CharField(verbose_name='標簽名',max_length=32)
    # 個人站點表和文章標簽表是一對多關(guān)系,外鍵建在文章標簽表
    blog = models.ForeignKey(to='Blog',null=True,on_delete=models.CASCADE)

# 6、點贊點踩表
class UpAndDown(models.Model):
    user = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE)
    article = models.ForeignKey(to='Article',on_delete=models.CASCADE)
    is_up = models.BooleanField()


# 7、評論表
class Comment(models.Model):
    user = models.ForeignKey(to='UserInfo',on_delete=models.CASCADE)
    article = models.ForeignKey(to='Article',on_delete=models.CASCADE)
    content = models.CharField(verbose_name='評論內(nèi)容',max_length=256)
    create_time = models.DateTimeField(verbose_name='評論時間',auto_now_add=True)
    # 子評論,自關(guān)聯(lián)
    parent = models.ForeignKey(to='self',on_delete=models.CASCADE,null=True)


網(wǎng)頁標題:bbs項目前期準備和表設(shè)計
鏈接地址:http://weahome.cn/article/dsogsoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部