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

网站备案 备注关联性北京管理咨询公司

网站备案 备注关联性,北京管理咨询公司,wordpress 图片尺寸,一个网站项目多少钱1. Django 构建数据表创建与数据迁移 1.1 数据表创建 1.1.1 模块功能 如前所述,models.py文件主要用一个 Python 类来描述数据表。运用这个类,可以通过简单的 Python 代码来创建、检索、更新、删除 数据库中的记录而无需写一条又一条的SQL语句。今天的例子就是在…

1. Django 构建数据表创建与数据迁移

1.1 数据表创建

1.1.1 模块功能

如前所述,models.py文件主要用一个 Python 类来描述数据表。运用这个类,可以通过简单的 Python 代码来创建、检索、更新、删除
数据库中的记录而无需写一条又一条的SQL语句。今天的例子就是在model.py中创建两个表:产品分类表和产品信息表。

1.1.1.1 models.py

产品分类表

class GoodsCategory(Model):name = CharField(max_length=64, verbose_name='名称')remark = CharField(max_length=256, null=True, blank=True, verbose_name='备注')

产品信息表

class Goods(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('goods.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='备注')

1.2 合并数据库

这两个命令是Django框架中的关键命令,用于进行数据库迁移。当你修改了Django模型后,你需要运行这两个命令,以将这些更改应用到数据库中。

python manage.py makemigrations

这个命令用于生成迁移脚本。当你更新了模型文件之后,需要运行该命令,Django会检测模型的改变,然后自动生成相应的迁移脚本,存储在migrations/目录下。通常来说,你需要针对每个应用运行一次该命令。

python manage.py migrate

这个命令用于将迁移脚本应用到数据库中。当你在模型文件中进行更改之后,需要先通过makemigrations命令生成迁移脚本,然后运行该命令将这些脚本应用到数据库中。对于新的迁移脚本,Django会逐个执行它们,从而更新数据库结构。对于已经执行过的脚本,Django会跳过它们,避免重复执行。

这两个命令是Django框架中非常重要的命令,在修改数据库相关内容时必须时刻清醒地记住使用它们。

在这里插入图片描述

2. Django-models的常用字段和常用配置

2.1 常用字段

CharField 用于存储字符串类型,有最大长度限制

IntegerField 用于存储整数类型

FloatField用于存储浮点数类型

BooleanField 用于存储布尔类型

DateField 用于存储日期类型

DateTimeField 用于存储日期和时间类型

ImageField 用于存储图片类型

FileField 用于存储文件类型

ForeignKey 外键 用于表示数据库表之间的关联关系

OneToOneField 一对一 用于表示一对一的关联关系

ManyToManyField 多对多 用于表示多对多的关联关系
  ‍

2.2 常用配置

max_length 字段的最大长度限制,可以应用于多种不同的字段类型。

verbose_name 字段的友好名称,便于在管理员后台可视化操作时使用。

default 指定字段的默认值。

null 指定字段是否可以为空。

null=True 设置允许该字段为 NULL 值

blank 指定在表单中输入时是否可以为空白。

choices 用于指定字段的可选值枚举列表,在最上面定义

2.3 字段定义

`class DeliveryMaterial(Model):``class Status(TextChoices):``QUALIFIED = ('qualified', '良品')`
`UNQUALIFIED = ('unqualified', '不良品')``status = CharField(max_length=32, choices=Status.choices, default=Status.QUALIFIED, verbose_name='状态')`

TextChoices 是 Django 3.0 引入的一个枚举类,用于在模型字段中创建可选择的、文本值的选项。
related_name 指定在多对多等关系中反向使用的名称。

on_delete 指定如果外键关联的对象被删除时应该采取什么操作。

3. Django-admin 引入admin后台和管理员

3.1 创建管理员

3.1.1 创建后台 admin 管理员

在终端运行命令

python manage.py createsuperuser

登录 admin 后台

http://127.0.0.1:8000/admin

python manage.py runserver

在这里插入图片描述

3.2 配置

admin.py文件中注册你的模型:

from django.contrib import admin
from .models import * # 引入产品表# 一定要分开逐个注册,不能放在一起admin.site.register(Goods)# 在admin站点中 注册产品表admin.site.register(GoodsCategory) # 在admin站点中 注册产品表

在这里插入图片描述

3. 构建数据表(外键的使用)

3.1 外键

models.py

category = ForeignKey(GoodsCategory,on_delete=SET_NULL,related_name='goods_set',null=True,verbose_name='产品分类')

on_delete 设置当外键对应的数据被删除时的反应
null=True

外键的概念

外键是一种用于建立表之间关联关系的约束,通常指的是一个模型中的一个或多个字段的值必须符合另一个模型中对应字段的值。

增加数据

  • 苹果 - 水果
  • 桃子 - 水果
  • 猴子 - 动物
  • 大象 - 动物
  • 构建根据分类获取某个分类下的产品 API

views.py

from django.shortcuts import render
from rest_framework.response import Response
from .models import *
from rest_framework.decorators import api_view
from django.shortcuts import get_object_or_404
# Create your views here.
# GET
# POST# 函数式编程
@api_view(['POST', 'GET'])
def InsertGoodsCategory(request):category_name = request.data.get('分类名字')# 获取分类对象或创建新的分类对象category, created = GoodsCategory.objects.get_or_create(name=category_name)# 判断是否已存在分类if not created:return Response({"status": "已存在", "goods_category": category_name}, status=200)else:return Response({"message": f"Successfully inserted category '{category_name}'."})@api_view(['POST','GET'])
def FilterGoodsCategory(request):data = request.data.get('分类名字')goods = GoodsCategory.objects.filter(name=data)if goods.exists():return Response({"status": "已存在", "goods_category": data}, status=200)else:return Response({"status": "不存在" ,"goods_category": data}, status=404)

urls.py

  • 放入路由
from django.contrib import admin
from django.urls import path
from apps.erp_test.views import *urlpatterns = [path('admin/', admin.site.urls),path('filtergoodscategory/', FilterGoodsCategory),path('insertgoodscategory/', InsertGoodsCategory),]
  • 使用postman针对insertGoodsCategory/filtergoodscategory/API接口进行测试,测试结果如下
    在这里插入图片描述

在这里插入图片描述


在这里插入图片描述

http://www.yayakq.cn/news/663351/

相关文章:

  • 自己做网站排名好吗网站域名在哪里看
  • 经典网站建设方案东莞网站seo技术
  • 网站开发的后台技术免费主机免费域名
  • 宁波网络营销平台网站建设和优化的步骤
  • 用dw制作网站建设网站建设的大公司排名
  • 网站推广和seo网络营销推广方法包括有哪些
  • 国内购物网站排名wordpress 视频播放插件
  • 多元 集团 网站建设方案永久个人自助建站
  • 深圳网站制作哪里好wordpress上站工具
  • 平面设计网站排行榜网站套用
  • 邢台企业做网站哪儿好温州网站排名优化公司哪家好
  • 网站正在建设中 模板网站快照工具
  • 创办网站要多少钱鄞州区优秀营销型网站建设首选
  • 购物网站制作流程在网站后台做网页
  • 中国建设银行网站首页下载东莞网站开发多少钱
  • 学院网站建设新闻简报电子商务网站名称
  • 网站的设计与开发的图片网站后台更新内容后
  • 贤邦网站建设app开发天津网站建设是什么
  • 专业提供网站建设服务的企业睢县房产网站建设
  • 自己做返利网站开发公司绩效考核
  • 白酒网站源码应用商店手机版下载
  • 江门网站制作网站百度站长app
  • 手机网站开发服务商新闻热点事件2024最新
  • 免费企业一键建站网站编程怎样自学
  • 北京seo服务行者企业网站关键词优化
  • 广西南宁网站策划网站优化开发
  • 做网站的去那里接单wordpress 首页白屏
  • 给个网站好人有好报内蒙古网站建设熊掌号
  • 贵阳建设网站培训网页生成pdf
  • ssp网站怎么做wordpress版本信息在哪里查看