Django 创建表结构说明->admin后台

本文介绍了在Django中如何通过model.py文件创建表结构,并使用`makemigrations`和`migrate`命令生成数据库表。同时,讲解了如何在admin后台进行数据表管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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表名

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值