您的位置:首页 > 编程语言 > Go语言

django搭建个人博客02,表设计(models)

2017-11-07 14:40 615 查看
建立数据模型

1.表设计:
> 文章ID(PK),标题(Idx),正文(markdown),正文(html),摘要,分类名(FK),发布时间,修改时间
>分类名(PK),文章数量
>文章ID(FK),留言ID(PK),留言内容,留言IP,留言时间
>作品ID(PK),作品名(Idx),作品摘要,发布时间,作品图集URL,作品GitHubURL

2.表实现:(www/models)
import uuid
class tb_tags(models.Model):
name=models.CharField(max_length=24,verbose_name="分类")
articlecount=models.PositiveIntegerField(verbose_name="同类文章数量")
id=models.PositiveIntegerField(primary_key=True,verbose_name="正则id")
class tb_articles(models.Model):
articleID=models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False,verbose_name="文章ID")
title=models.CharField(max_length=30,db_index=True,verbose_name='标题')
content_md=models.TextField(verbose_name='Markdown内容')
content_html=models.TextField(verbose_name='html内容')
abstract=models.CharField(max_length=140,verbose_name='摘要')
tagID=models.ForeignKey(tb_tags,on_delete=models.CASCADE)
created=models.DateTimeField(verbose_name='创建时间')
updated=models.DateTimeField(verbose_name='更新时间')
class tb_comments(models.Model):
articleID=models.ForeignKey(tb_articles,on_delete=models.CASCADE)
commentID=models.AutoField(primary_key=True,verbose_name="留言ID")
content=models.CharField(max_length=140,verbose_name="留言内容")
IP=models.CharField(max_length=30,verbose_name="留言来源")
lefted=models.DateTimeField(verbose_name="留言时间")
class tb_projs(models.Model):
projID=models.AutoField(primary_key=True,verbose_name="作品ID")
title=models.CharField(max_length=24,db_index=True,verbose_name="作品名")
abstract=models.CharField(max_length=140,verbose_name="作品简介")
uploaded=models.DateTimeField(verbose_name="作品发布时间")
imgsURL=models.URLField(verbose_name="作品图集")
gitURL=models.URLField(verbose_name="作品GitHubURL")


notice!注意类实现顺序,被当外键的类要先建立。

3.应用models:
python3 manage.py makemigrations www 查看是否有语法错误
python3 manage.py sqlmigrate www 0001 查看将被执行的SQL
python3 manage.py migrate 应用修改


注册 www 数据模型到后台管理界面
vim www/admin.py
from .models import *
admin.site.register(tb_articles)
admin.site.register(tb_tags)
admin.site.register(tb_comments)
admin.site.register(tb_projs)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django