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

生成图片链接的网站江门网站建设

生成图片链接的网站,江门网站建设,做慈善黄色网站,广东品牌网站设计专家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.hrbkazy.com/news/40874.html

相关文章:

  • 广州建站客服招聘网页设计与制作个人网站模板
  • 全球电子商务网站排名怎么在百度推广
  • 常州市中大建设工程有限公司网站2022最新国际新闻10条简短
  • 知名网站建设公司好吗淘宝搜索关键词技巧
  • 抚顺网站推广百度电脑版官网入口
  • 找人做网站需要注意什么提高seo排名
  • 滴滴一年亏损109亿seo推广培训学费
  • 网站设计公司佛山系统优化软件哪个好
  • 南昌中小企业网站制作清远新闻最新
  • 长沙微营销武汉seo优化代理
  • 网站开发需求方案模板百度软文推广怎样收费
  • 安徽合肥制作网站公司吗情感链接
  • 网站建设参考文献资料企业网站seo方案案例
  • 精彩 网站宁波seo快速优化公司
  • 网址网站注册免费域名注册平台有哪些
  • 建设网站需要资料百度关键词规划师入口
  • 做网站用的背景图微信营销的案例
  • 南宁做网站哪家好百度指数官网
  • 织梦做的网站如何去掉index百度公司销售卖什么的
  • 做网站 指导seo排名软件
  • seo站长博客参考网是合法网站吗?
  • 做电商网站用什么语言360推广怎么收费
  • 福州企业高端网站建设制作哪家好危机舆情公关公司
  • 去年做哪些网站能致富5151app是交友软件么
  • 建站的注意事项广州seo和网络推广
  • 构建动态网站设计的理解什么是搜索关键词
  • 网站在线问答怎么做百度入驻绍兴
  • ui做的好的公司网站如何建网站赚钱
  • 北京 网站设计公司网页seo
  • 做奢侈品的网站重庆seo杨洋