配置 settings.py 和 启动项目
1. setting.py修改
增加下列内容
python
'app01',
'rest_framework',
'django_filters',
'drf_spectacular',
2.启动项目
运行项目先执行数据库相关操作,再启动 django 项目
数据库迁移操作
python manage.py makemigrations
python manage.py migrate
cmd
(p2) PS D:\work\sweettalk-django4.2-main\code\project01> python manage.py migrate
Operations to perform:
Apply all migrations: app01, admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
启动Django服务
python manage.py runserver
cmd
(p2) PS D:\work\sweettalk-django4.2-main\code\project01> python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
October 17, 2023 - 15:47:57
Django version 4.2.3, using settings 'project01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[17/Oct/2023 15:48:01] "GET / HTTP/1.1" 200 10664
3.表创建
python
from django.db import models
from django.db.models import *
# Create your models here.
class GoodsCategory(models.Model):
name = CharField(max_length=64, verbose_name='名称')
remark = CharField(max_length=256, null=True, blank=True, verbose_name='备注')
class Goods(models.Model):
number = CharField(max_length=32, verbose_name='编号')
name = CharField(max_length=64, verbose_name='名称')
barcode = CharField(max_length=32, null=True, blank=True, verbose_name='条码')
category = ForeignKey('app01.GoodsCategory', on_delete=SET_NULL, null=True,related_name='goods_set', verbose_name='产品分类')
spec = CharField(max_length=64, null=True, blank=True, verbose_name='规格')
shelf_life_days = IntegerField(null=True, verbose_name='保质期天数')
purchase_price = FloatField(default=0, verbose_name='采购价')
retail_price = FloatField(default=0, verbose_name='零售价')
remark = CharField(max_length=256, null=True, blank=True, verbose_name='备注')
python manage.py makemigrations
python manage.py migrate
需要注意的是表字段格式比较多,常用的表配置也比较多。
字段
CharField
用于存储字符串类型,有最大长度限制
IntegerField
用于存储整数类型
FloatField
用于存储浮点数类型
BooleanField
用于存储布尔类型
DateField
用于存储日期类型
DateTimeField
用于存储日期和时间类型
ImageField
用于存储图片类型
FileField
用于存储文件类型
ForeignKey
外键 用于表示数据库表之间的关联关系
OneToOneField
一对一 用于表示一对一的关联关系
ManyToManyField
多对多 用于表示多对多的关联关系
配置
max_length
字段的最大长度限制,可以应用于多种不同的字段类型。
verbose_name
字段的友好名称,便于在管理员后台可视化操作时使用。
default
指定字段的默认值。
null
指定字段是否可以为空。
null=True
设置允许该字段为 NULL 值
blank
指定在表单中输入时是否可以为空白。
choices
用于指定字段的可选值枚举列表,在最上面定义
4.后台管理
在admin.py注册即可
python
# Register your models here.
from django.contrib import admin
from .models import * # 引入产品表
# 一定要分开逐个注册,不能放在一起
admin.site.register(Goods)
# 在admin站点中 注册产品表
admin.site.register(GoodsCategory)
# 在admin站点中 注册产品表
创建管理员:
cmd
python manage.py createsuperuser