一、資料庫表設計(models.py檔案)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from __future__ import unicode_literals
from django.db import models
#導入django使用者認證表
from django.contrib.auth.models import User
# Create your models here.
class Article(models.Model):#文章表
title = models.CharField(u"文章标題",max_length=255,unique=True)
categroy = models.ForeignKey("Category",verbose_name=u"闆塊")
head_img = models.ImageField(upload_to="uploads")#每個文章都要有一張圖檔
content = models.TextField(u"文章内容")#文章内容
author = models.ForeignKey("UserProfile")#一篇文章隻能有一個作者
publish_date = models.DateTimeField(auto_now=True)#文章釋出日期
hidden =models.BigAutoField(default=True)#文章是否顯示
priority = models.IntegerField(u"優先級",default=1000)#文章優先級
def __unicode__(self):#設定預設傳回值
return "<%s,author:%s>" %(self.title,self.author)
class Comment(models.Model):#評論表
article = models.ForeignKey("Article")#一條評論隻能針對一篇文章
user = models.ForeignKey("UserProfile")#由哪個使用者發出評論
#parent_comment = models.ForeignKey('Comment',)#父級評論
parent_comment = models.ForeignKey("self", related_name = 'parcomment',blank=True,null=True)#父級評論
date = models.DateTimeField(auto_now=True)#評論釋出日期
comment = models.TextField(max_length=1000)#評論内容
def __unicode__(self):傳回預設值
return "<%s,user:%s>" %(self.comment,self.user)
class ThumbUp(models.Model):#點贊統計
article = models.ForeignKey('Article')#點贊的文章
user = models.ForeignKey('UserProfile')#點贊的使用者
date = models.DateTimeField(auto_now=True)#人點贊日期
return "<user:%s>" %(self.user)
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) #繼承系統原生的User表
name = models.CharField(max_length=32)
groups = models.ManyToManyField("UserGroup") #屬于哪個使用者組
class UserGroup(models.Model):#使用者組表
name = models.CharField(max_length=64,unique=True)#使用者組名稱
二、資料初始化:
settings.py中資料庫通路設定
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'s11bbs',
'HOST':'127.0.0.1',
'USER':'root',
'PASSWORD':'123456',
}
}
在執行同步之前要先建立資料庫s11bbs,然後再執行以下語句
python manage.py migrate
mysql> use s11bbs;
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_s11bbs |
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
10 rows in set (0.00 sec)
python manage.py migrations
| web_article |
| web_category |
| web_category_admin |
| web_comment |
| web_thumbup |
| web_usergroup |
| web_userprofile |
| web_userprofile_groups |
18 rows in set (0.00 sec)
mysql>
三、向admin中注冊建立的資料庫表
在admin中注冊建立的表
from django.contrib import admin
import models
# Register your models here.
admin.site.register(models.Article)
admin.site.register(models.Category)
admin.site.register(models.Comment)
admin.site.register(models.ThumbUp)
admin.site.register(models.UserProfile)
admin.site.register(models.UserGroup)
建立使用者ucode
C:\Users\ryan\PycharmProjects\s11bbs>python manage.py createsuperuser
Username (leave blank to use 'ryan'): ucode
Email address:
Password:
Password (again):
Superuser created successfully.
C:\Users\ryan\PycharmProjects\s11bbs>
本文轉自027ryan 51CTO部落格,原文連結:http://blog.51cto.com/ucode/1868020,如需轉載請自行聯系原作者