Task01 搭建虚拟环境和项目,构建数据表

毕业工作一年以来,对于Django的学习还停留在学校,偶然看到这次学习活动,遂当做爱好重新学起来

一、新建Python配置Django运行环境

python -m venv DjangoEnv
  • 启动DjangoEnv环境
PS C:\Users\17520\Desktop\DataWhaleLearning> .\DjangoEnv\Scripts\activate
(DjangoEnv) PS C:\Users\17520\Desktop\DataWhaleLearning> # 出现此表示已经激活当前的Python环境,此后即可使用此环境
  • 并安装本次学习的所需模块

    1. 安装DjangoDjango 是一个 Python web 框架,提供许多功能,如 ORM、认证、表单、模板等,它可以帮助你更快、更轻松地开发 web 应用程序。
    pip install django
    
    1. 安装 DRFDRF 是一个基于 Django 的强大而灵活的 RESTful 框架,它提供了许多工具和库,可帮助你快速开发基于 RESTful API web 应用程序。
    pip install djangorestframework
    
    1. 安装 Django-Filter,介绍:Integration with DRF — django-filter 23.2 documentation,Django-Filter 是一个基于 Django 的库,它提供了一种简单、灵活的方式来过滤Django模型的查询集。Django-Filter API 允许开发者使用简单的查询表达式,构建和应用复杂的过滤器,从而在查询集中选择和排除数据。Django-Filter 通过与 DRF Spectacular 的集成,支持OpenAPI规范表述的数据过滤和查询,提供了更加优雅的 API 规范方案。
    pip install django-filter
    
    1. 安装 Django Spectacular,介绍:DRF Spectacular DRF OpenAPI规范工具。它可以自动构建和生成 OpenAPI 规范文档,并提供方便的 API 测试工具,使你能够更加轻松地创建、测试和维护 RESTful API。同时,它也支持集成 Django Filter,允许你通过 URL 参数过滤查询数据。
    pip install drf_spectacular
    
    1. 安装drf-spectacular,根据你DRF API代码生成API文档。 它提供了多种配置选项,使开发者能够自定义自动生成的API文档的内容和样式。
    pip install drf-spectacular
    
  • 练习,安装 debug-toolbardjango-extensions

pip install django-debug-toolbar django_extensions
  • 退出DjangoEnv环境
deactivate
  • 导出当前DjangoEnv环境所安装的包
pip freeze > requirements.txt
  • 在新建的Python环境批量安装导出的包
pip install -r requirements.txt
  • 批量卸载当前Python环境安装的包
# -y 表示同意,无需提示输入确定
pip uninstall -r requirements.txt -y 

二、创建 Django 项目和 APP

  • 创建Django项目config,新建后修改外层configMyDRF(个人习惯)
django-admin startproject config
  • 指定路径创建app应用(开始)
# 进入新建的MyDRF项目
cd MyDRF
# 创建文件夹apps
mkdir apps
# 创建mydrf应用
python manage.py startapp mydrf
# 将mydrf应用放入到apps文件夹中
cd apps
django-admin startapp appname
  • 修改apps/mydrf/apps.py文件,指定路径创建app应用(结束)
from django.apps import AppConfig
class MydrfConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'apps.mydrf'

三、配置 settings.py 和 启动项目

  • settings.py添加应用(新建的和所需的)
# Application definition
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 新增应用
    'apps.mydrf',
    'rest_framework',
    'django_filters',
    'drf_spectacular',
]
  • 启动Django项目,注意进入含有manage.py文件的目录执行
# 7777 为指定端口,不添加则为默认为8000端口
python manage.py runserver 7777

四、Django构建数据表

  • apps/mydrf/models.py中构建数据表
from django.db.models import *

# Create your models here.
## 产品分类表
class GoodsCategory(Model):
    """产品分类"""
    name = CharField(max_length=64,verbose_name='分类名称')
    remark = CharField(max_length=64,null=True,verbose_name='备注',blank=True)


## 产品表
class Goods(Model):
    """产品"""
    # 外键
    category = ForeignKey(GoodsCategory, on_delete=SET_NULL,related_name='goods_set',null=True,verbose_name='产品分类',blank=True,)
    # on_delete 
    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='条码')
    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=128, null=True, blank=True, verbose_name='备注')
CharField:用于存储字符串类型,有最大长度限制
IntegerField:用于存储整数类型
FloatField:用于存储浮点数类型
BooleanField:用于存储布尔类型
DateField:用于存储日期类型
DateTimeField:用于存储日期和时间类型
ImageField:用于存储图片类型
FileField:用于存储文件类型
ForeignKey:外键 用于表示数据库表之间的关联关系(一对多,多的地方创建外键)
OneToOneField:一对一 用于表示一对一的关联关系
ManyToManyField:多对多 用于表示多对多的关联关系

max_length:字段的最大长度限制,可以应用于多种不同的字段类型。
verbose_name:字段的友好名称,便于在管理员后台可视化操作时使用。
default:指定字段的默认值。
null:指定字段是否可以为空。null=True 设置允许该字段为 NULL 值
blank:指定在表单中输入时是否可以为空白。
choices:用于指定字段的可选值枚举列表。
related_name:指定在多对多等关系中反向使用的名称。
on_delete:指定如果外键关联的对象被删除时应该采取什么操作。
  • 执行数据库迁移命令
  1. python manage.py makemigrations: 这个命令用于生成迁移脚本。当你更新了模型文件之后,需要运行该命令,Django会检测模型的改变,然后自动生成相应的迁移脚本,存储在migrations/​目录下。通常来说,你需要针对每个应用运行一次该命令。
  2. python manage.py migrate: 这个命令用于将迁移脚本应用到数据库中。当你在模型文件中进行更改之后,需要先通过makemigrations​命令生成迁移脚本,然后运行该命令将这些脚本应用到数据库中。对于新的迁移脚本,Django会逐个执行它们,从而更新数据库结构。对于已经执行过的脚本,Django会跳过它们,避免重复执行。
  3. 这两个命令是Django框架中非常重要的命令,在修改数据库相关内容时必须时刻清醒地记住使用它们。
python manage.py makemigrations
python manage.py migrate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

而又何羡乎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值