订单交易平台二(写代码之前的准备工作)

news/2024/12/21 21:23:02/文章来源:https://www.cnblogs.com/Tmars/p/18448545

订单交易平台准备工作

1.先搭建环境

# 1.先创建python基本环境,并且创建虚拟环境# 2.创建完成后,先安装你所需要的Django版本:
pip install Django==3.2# 3.创建Django项目:
django-admin startproject app01 .# 4.创建Django,在app01根目录文件下创建apps文件,里面放app文件:
python manage.py startapp api apps/api

img

img

img

img

2.环境搭建完成后,进行settings项目配置(Mysql、redis、templates、static)

2.1 在app中创建static文件(css、js、images、plugins)、templates文件

img

2.2 配置settings文件

# mysql配置
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'day06','USER': 'root','PASSWORD': 'zt7758521','HOST': '127.0.0.1','PORT': 3306,}
}# 配置静态文件
STATIC_URL = '/static/'# 配置models文件
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'# 配置将来登录界面所需要的东西
MENU = {"ADMIN": [],"CUSTOMER": [],
}
PERMISSION = {"ADMIN": {},"CUSTOMER": {},
}# 配置cache缓存(redis)
CACHES = {"default": {"BACKEND": "django_redis.cache.RedisCache","LOCATION": "redis://127.0.0.1:6379","OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient","CONNECTION_POOL_KWARGS": {"max_connections": 100},"PASSWORD": "",}}
}# 配置session配置
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = 'default'SESSION_COOKIE_NAME = "sid"  # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串
SESSION_COOKIE_PATH = "/"  # Session的cookie保存的路径
SESSION_COOKIE_DOMAIN = None  # Session的cookie保存的域名
SESSION_COOKIE_SECURE = False  # 是否Https传输cookie
SESSION_COOKIE_HTTPONLY = True  # 是否Session的cookie只支持http传输
SESSION_COOKIE_AGE = 1209600  # Session的cookie失效日期(2周)SESSION_EXPIRE_AT_BROWSER_CLOSE = False  # 是否关闭浏览器使得Session过期
SESSION_SAVE_EVERY_REQUEST = True  # 是否每次请求都保存Session,默认修改之后才保存# 配置本地local_setting
try:from .local_settings import *
except Exception:pass

img

3.在urls.py中写入路由配置

# from django.contrib import admin
from django.urls import path
from web.views import accounturlpatterns = [# path('admin/', admin.site.urls),# 登录界面path('login/', account.login, name="login"),  # 短信登录界面path('sms/login/', account.sms_login, name="sms_login"),
]

img

4.在view文件夹中创建视图函数,account.py,并且在templates文件下创建两个前端界面

# 写入urls所需要的视图函数from django.shortcuts import render, redirectdef login(request):return render(request,'login.html')def sms_login(request):return render(request,'sms_login.html')

img

5.设计本项目的数据库表(在models.py中)

from django.db import modelsclass ActiveBaseModel(models.Model):active = models.SmallIntegerField(verbose_name="状态", default=1, choices=((1, "激活"), (0, "删除"),))class Meta:abstract = Trueclass Administrator(ActiveBaseModel):""" 管理员表 """username = models.CharField(verbose_name="用户名", max_length=32, db_index=True)password = models.CharField(verbose_name="密码", max_length=64)mobile = models.CharField(verbose_name="手机号", max_length=11, db_index=True)create_date = models.DateTimeField(verbose_name="创建日期", auto_now_add=True)class Level(ActiveBaseModel):""" 级别表 """title = models.CharField(verbose_name="标题", max_length=32)percent = models.IntegerField(verbose_name="折扣")class Customer(ActiveBaseModel):""" 客户表 """username = models.CharField(verbose_name="用户名", max_length=32, db_index=True)password = models.CharField(verbose_name="密码", max_length=64)mobile = models.CharField(verbose_name="手机号", max_length=11, db_index=True)balance = models.DecimalField(verbose_name="账户余额", default=0, max_digits=10, decimal_places=2)level = models.ForeignKey(verbose_name="级别", to="Level", on_delete=models.CASCADE)create_date = models.DateTimeField(verbose_name="创建日期", auto_now_add=True)creator = models.ForeignKey(verbose_name="创建者", to="Administrator", on_delete=models.CASCADE)class PricePolicy(models.Model):""" 价格策略(原价,后续可以根据用级别不同做不同折扣)1  1000 102  2000 18"""count = models.IntegerField(verbose_name="数量")price = models.DecimalField(verbose_name="价格", default=0, max_digits=10, decimal_places=2)class Order(ActiveBaseModel):""" 订单表 """status_choices = ((1, "待执行"),(2, "正在执行"),(3, "已完成"),(4, "失败"),)status = models.SmallIntegerField(verbose_name="状态", choices=status_choices, default=1)# 202211022123123123oid = models.CharField(verbose_name="订单号", max_length=64, unique=True)url = models.URLField(verbose_name="视频地址", db_index=True)count = models.IntegerField(verbose_name="数量")price = models.DecimalField(verbose_name="价格", default=0, max_digits=10, decimal_places=2)real_price = models.DecimalField(verbose_name="实际价格", default=0, max_digits=10, decimal_places=2)old_view_count = models.CharField(verbose_name="原播放量", max_length=32, default="0")create_datetime = models.DateTimeField(verbose_name="创建时间", auto_now_add=True)customer = models.ForeignKey(verbose_name="客户", to="Customer", on_delete=models.CASCADE)memo = models.TextField(verbose_name="备注", null=True, blank=True)class TransactionRecord(ActiveBaseModel):""" 交易记录 """charge_type_class_mapping = {1: "success",2: "danger",3: "default",4: "info",5: "primary",}charge_type_choices = ((1, "充值"), (2, "扣款"), (3, "创建订单"), (4, "删除订单"), (5, "撤单"),)charge_type = models.SmallIntegerField(verbose_name="类型", choices=charge_type_choices)customer = models.ForeignKey(verbose_name="客户", to="Customer", on_delete=models.CASCADE)amount = models.DecimalField(verbose_name="金额", default=0, max_digits=10, decimal_places=2)creator = models.ForeignKey(verbose_name="管理员", to="Administrator", on_delete=models.CASCADE, null=True, blank=True)order_oid = models.CharField(verbose_name="订单号", max_length=64, null=True, blank=True, db_index=True)create_datetime = models.DateTimeField(verbose_name="交易时间", auto_now_add=True)memo = models.TextField(verbose_name="备注", null=True, blank=True)

最好在终端进行表的提交

python manage.py makemigrationspython manage.py migrate

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/808734.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PM的正交调解法

1.PM的模拟调制过程 ​ PM信号是一种相位调制信号,其携带的信息保存在其信号的相位中,通过改变载波的相位来实现基带数据的传输。 其函数表达式如下: \[s(t) = A*cos(w_c*t + K_f*m(t)) \]其中: \(A\):表示载波幅度。 \(m(t)\):表示基带信号。 \(w_c\):表示载波信号角度增量…

监控室值班人员脱岗睡岗识别系统

监控室值班人员脱岗睡岗识别系统基于Yolov7深度学习神经网络算法,监控室值班人员脱岗睡岗识别系统可以7*24小时不间断自动监控总监控室值班人员是否在工位上(脱岗睡岗玩手机),若值班人员没有在总监控室系统则立即抓拍告警,算法鲁棒性强。监控室值班人员脱岗睡岗识别系统检…

监控室值班人员脱岗识别系统

监控室值班人员脱岗识别系统通过AI视觉技术,监控室值班人员脱岗识别系统实现企业总监控室值班人员脱岗、睡岗、玩手机等场景的AI识别,不需人为干预全天候自动识别。监控室值班人员脱岗识别系统通过建设视频监控智能识别功能赋能企业端,监控室值班人员脱岗识别系统对各个生产…

非煤矿山电子封条

非煤矿山电子封条 支持对接甘肃省矿山监管平台通过AI智能分析技术,非煤矿山电子封条可以实现矿山与甘肃省应急管理部门互联互通,非煤矿山电子封条 支持对接甘肃省矿山监管平台通过在关键地点(关键位置包括矿山主副井口、风井口、车辆出入口和调度室)安装摄像机,非煤矿山电…

甘肃省非煤矿山电子封条建设方案

甘肃省非煤矿山电子封条建设方案通过AI视频智能分析技术,甘肃省非煤矿山电子封条建设方案利用在煤矿风井口、煤矿调度室、煤矿主副井口、矿区车辆出入口重要位置安装摄像机,甘肃省非煤矿山电子封条建设方案对非煤矿区生产作业状态以及矿井出井入井人员数量变化、监控室人员睡…

校园食堂明厨亮灶监控分析系统

校园食堂明厨亮灶监控分析系统通过yolov5网络模型技术,校园食堂明厨亮灶监控分析系统针对校园餐厅后厨厨师穿戴及行为进行7*24小时不间断实时分析预警,如:不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为。校园食堂明厨亮灶…

工服智能监测预警系统

工服智能监测预警系统通过yolov8网络模型算法,工服智能监测预警系统对摄像机画面内出现的人员着装穿戴实时监测,当检测到现场人员未按要求穿戴工服工装则输出报警信息,通知后台值班人员及时处理。工服智能监测预警系统无需新增硬件,利用最新的深度学习技术,基于现场监控视…

ai皮带跑偏撕裂监测系统功能

ai皮带跑偏撕裂监测系统功能基于人工智能视觉技术,ai皮带跑偏撕裂监测系统功能自动识别现场监控画面中传送皮带撕裂、跑偏、偏移等情况,当ai皮带跑偏撕裂监测系统功能检测出皮带出现撕裂或者跑偏现象后,立即告警抓拍存档同步回传后台提醒及时处理,提高煤矿的智能化水平和人…

订单交易平台一

简介:订单交易平台核心的功能模块:认证模块,用户名密码 或 手机短信登录(60s有效)。角色管理,不同角色具有不同权限 和 展示不同菜单。 管理员,充值客户,下单客户管理,除了基本的增删改查以外,支持对客户可以分级,不同级别后续下单折扣不同。交易中心管理员可以给客…

学习“基于VirtualBox虚拟机安装Ubuntu图文教程”

安装过程中出现了很多问题第一次安装没有下载ubtun20.04 镜像 第二次安装不知道如何下载bzip2,导致一直安装增强功能 第三次在上B站搜索视频讲解后成功安装好了

wintools premium 24.10.1 注册分析

wintools premium 24.10.1 目录wintools premium 24.10.1NAGSCREEN_proc_472350check_472BF0pyps win32 程序,程序注册逻辑简单,关注窗口事件、控件id可快速定位到关键逻辑。 NAGSCREEN_proc_472350 INT_PTR __thiscall NAGSCREEN_proc_472350(void *this, HWND hDlg, UINT a…

项目部署二:服务器和环境配置

2.服务和环境配置 下面的配置和操作均在腾讯云服务器+CentOS 7.5的系统下进行。 2.1 MySQL安装服务端 yum install mariadb-server -y mariadb-server.x86_64 1:5.5.68-1.el7安装客户端 yum install mariadb -y 软件包 1:mariadb-5.5.68-1.el7.x86_64 已安装并且是最新版本服务…