当前位置: 首页 > news >正文

Django入门

Day1 django环境安装

  • 创建虚拟环境

# step1 创建虚拟环境
python3 -m venv datawhale_django
# step2 mac进入虚拟环境
source ./datawhale_django/bin/activate
# step3 退出虚拟环境
deactivate
  • 安装包

pip3 install django
​pip3 install djangorestframework​​
pip3 install django-filter
pip3 install drf_spectacular
pip3 install django-debug-toolbar​​
pip3 install django_extensions

Day2 Django启动

  • 安装项目&app

# step1:创建django项目
django-admin startproject erp
# step2: erp项目中创建app,以下会创建两个app:data & purchase
django-admin startapp data
django-admin startapp purchase

需要将项目和已安装的app相关联,目的:在项目中找到对应的app
在这里插入图片描述

  • django项目启动&运行

# 以下两个命令在后面进行讲解
python3 manage.py makemigrations
python3 manage.py migration
# 项目运行
python3 manage.py runserver

Day3 数据库

django数据库基础

常用字段

CharField: 用于存储字符串类型,有最大长度限制
IntegerField:用于存储整数类型
FloatField:用于存储浮点数类型
BooleanField:用于存储布尔类型
DateField:用于存储日期类型
DateTimeField:用于存储日期和时间类型
ImageField:用于存储图片类型
FileField:用于存储文件类型
ForeignKey:外键用于表示数据库之间的关联关系
OneToOneField:一对一用于表示一对一的关联关系
ManyToManyField:多对多,用于表示多对多的关联关系

常用配置

max_length:字段的最大长度限制,可以应用于多种不同的字段类型
verbose_name:字段的友好名称,便于在管理员后台可视化操作时使用
default:指定字段的默认值
null:指定字段是否可以为空,null=True设置允许该字段为NULL值
blank:指定在表单中输入时是否可以为空白
choices:用于指定字段的可选值枚举列表
class DeliveryMaterial(Model):"""复核产品"""class Status(TextChoices):"""状态"""QUALIFIED = ('qualified', '良品')UNQUALIFIED = ('unqualified', '不良品')status = CharField(max_length=32, choices=Status.choices, default=Status.QUALIFIED, verbose_name='状态')TextChoices:用于在模型字段中创建可选择的,文本值的选项
related_name:指定在多对多等关系中反向使用的名称
on_delete:指定如果外键关联的对象被删除时应该采取什么操作

在app中创建相关的数据表

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_deletenumber = 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:指定如果外键关联的对象被删除时应该采取什么操作。
"""

在admin中注册数据集

from django.contrib import admin# Register your models here.
from .models import *admin.site.register(GoodsCategory)
admin.site.register(Goods)

表结构写好生成数据表之后,不建议修改表结构,问题:修改之后,重新执行语句,甚至删库之后,重新生成表结构,都会导致数据提交失败,暂时没找到方法修改数据表

添加管理员

python3 manager.py createsuperuser
# 登录 127.0.0.1:8080/admin
http://www.lryc.cn/news/123013.html

相关文章:

  • uniapp 格式化时间刚刚,几分钟前,几小时前,几天前…
  • JProfiler —CPU评测
  • 994. 腐烂的橘子
  • Rx.NET in Action 第三章学习笔记
  • Windows11环境下VS2019调用Pytorch语义分割模型(C++版)
  • Milkv Duo 以太网使用与配置
  • bash: make: command not found
  • 热点如何用于期刊写作——以chatGPT为例
  • IGV.js 的完全本地化运行探索
  • 网络安全渗透测试之靶场训练
  • Java课题笔记~ Spring 的事务管理
  • 仿到位|独立版家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单源码
  • Observability:识别生成式 AI 搜索体验中的慢速查询
  • 接口测试及接口抓包常用的测试工具
  • CH342/CH343/CH344/CH347/CH9101/CH9102/CH9103/CH9104 Linux串口驱动使用教程
  • 反射和工厂设计模式---工厂设计模式
  • 【算法——双指针】LeetCode 283 移动零
  • 腾讯云轻量服务器和云服务器的CPU处理器有差别吗?
  • Redis_亿级访问量数据处理
  • Java-类型和变量(基于C语言的补充)
  • 机器学习笔记:李宏毅diffusion model
  • STM32--TIM定时器(2)
  • git Authentication failed
  • 【软考】2023系统架构设计师考试
  • opencv基础55-获取轮廓的特征值及示例
  • OpenCV图像处理——形态学操作
  • 修改VS Code终端的显示行数
  • C++学习| MFC简单入门
  • “一日之际在于晨”,欢迎莅临WAVE SUMMIT上午场:Arm 虚拟硬件早餐交流会
  • leetcode454. 四数相加 II