一、model.py文件中
使用pymysql时,必须加这两行
import pymysql
pymysql.install_as_MySQLdb()
#如果使用mysql的话,一定要加这个
python manage.py makemigrations 创建表结构
python manage.py migrate 生成表,建表
from django.db import models
# Create your models here.
class Category(models.Model):
#继承至models.Model,verbose_name在后台管理admin中显示,unique字段不能重复,auto_now_add自动添加时间,auto_now什么时间修改自动更新时间
name = models.CharField(verbose_name='分类名称', max_length=50, unique=True)
create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
update_time = models.DateTimeField(verbose_name='修改时间', auto_now=True)
is_delete = models.BooleanField(verbose_name='是否删除', default=False)
class Meta: # 首页 5
db_table = 'category' # 指定表名的
ordering = ['create_time'] #按照创建时间排序,默认是升序的,加-是降序['-create_time']
verbose_name = '文章分类'#在admin显示中文表名的配置复数
verbose_name_plural = verbose_name #在admin显示单数,去掉s
def __str__(self):
return self.name + '导航分类' # 文章分类的名词 首页、Linux、python等
class Article(models.Model):
title = models.CharField(verbose_name='文章标题', max_length=100, db_index=True)
desc = models.CharField(verbose_name='描述', max_length=100, blank=True, null=True, default='这个文章没有描述')
content = models.TextField(verbose_name='文章内容')
img = models.ImageField(verbose_name='文章图片', upload_to='article_img',
default='images/1.jpg') # 需要pip install pillow
recommend = models.BooleanField(verbose_name='是否推荐', default=False)
category = models.ForeignKey(Category, verbose_name='分类', on_delete=models.DO_NOTHING,db_constraint=False)# ForeignKey 创建外键;DO_NOTHING不受关联,分类删了文章不删,
# models.CASCADE #受关联的,分类删了文章也删了 cascade
# db_constraint 不会真正在数据库里面建立外键
create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
update_time = models.DateTimeField(verbose_name='修改时间', auto_now=True)
is_delete = models.BooleanField(verbose_name='是否删除', default=False)
# db_constraint 不会真正在数据库里面建立外键
class Meta: # 首页 5
db_table = 'article' #
ordering = ['create_time']
verbose_name = '文章'
verbose_name_plural = verbose_name
def __str__(self):
return self.title
二、admin后台管理
python manage.py createsuperuser 创建用户名字 密码和邮箱
在admin导入数据表:
from django.contrib import admin
# Register your models here.
from . import models
admin.site.register(models.Category) #Category表名
admin.site.register(models.Article) #Article表名