django 创建model 数据库

1. 建表 user->models.py

from django.db import models

class Category(models.Model):
name= models.CharField(verbose_name="分类名称",max_length=20)
create_time=models.DateTimeField(verbose_name="创建时间",auto_now_add=True)
update_time= models.DateTimeField(verbose_name="更新时间",auto_now=True)
  # auto_now_add 自动添加 auto_now 自动更新
def __str__(self):  # 显示name的名称
return self.name

class Meta: # 更换表名称
verbose_name = "分类表"
verbose_name_plural = verbose_name

class Article(models.Model):
title = models.CharField(verbose_name="文章标题",max_length=50)
desc = models.CharField(verbose_name="文章描述",max_length=100) #255
content = models.TextField(verbose_name="文章内容") #文本类型
img = models.ImageField(verbose_name="文章图片",null=True,blank=True,upload_to='./static') #
show_count = models.IntegerField(verbose_name="查看次数",default=0)
category = models.ForeignKey(Category,on_delete=models.PROTECT,verbose_name="分类")
create_time = models.DateTimeField(verbose_name="创建时间",auto_now_add=True) #
update_time = models.DateTimeField(verbose_name="更新时间",auto_now=True) #

#models.DO_NOTHING 什么也不做
#models.CASCADE 级联
#models.SET_DEFAULT #设置一个默认值
#models.PROTECT 受保护的

def __str__(self):
return self.title

class Meta:
db_table = "article"
verbose_name = "文章"
verbose_name_plural = verbose_name


2. 执行命令建表
python manage.py makemigrations #生成表结构
python manage.py migrate #表结构同步到数据库

3. 表创建完成,数据库查看

可能的问题:
Q:执行命令后没有扫描到应用,可能是初始化文件没有。
A: 在应用的migrations目录添加初始化文件。

>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions, user, user2
Running migrations:
No migrations to apply.



posted @ 2021-05-24 10:41  Mia妈妈加油呀  阅读(122)  评论(0)    收藏  举报