# 电商数字化平台系统设计 **Repository Path**: twxspace/Django_Structure ## Basic Information - **Project Name**: 电商数字化平台系统设计 - **Description**: 模拟直播间开发的数据分析看板系统,且支持采购、库存、销售部门进行数字化运营,主要面向企业各个业务部门。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-05-20 - **Last Updated**: 2024-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README admin.py:在admin管理界面注册一个class models.py:是定义应用程序数据结构的 Python 对象,并提供在数据库中管理(添加,修改,删除)和查询记录的机制。 views.py:定义网站逻辑的地方 settings.py 包含所有的网站设置。这是可以注册所有创建的应用的地方,也是静态文件,数据库配置的地方,等等。 urls.py 定义了网站 url 到 view 的映射。虽然这里可以包含所有的 url,但是更常见的做法是把应用相关的 url 包含在相关应用中,你可以在接下来的教程里看到。 wsgi.py 帮助 Django 应用和网络服务器间的通讯。你可以把这个当作模板。 db.sqlite3是数据库文件,manage.py中有django项目中的大部分命令 Templates: 模板 是定义文件(例如 HTML 页面)的结构或布局的文本文件,用于表示实际内容的占位符。一个视图可以使用 HTML 模板,从数据填充它动态地创建一个 HTML 页面模型。可以使用模板来定义任何类型的文件的结构; 它不一定是 HTML! static存放静态文件,此处建议static下再新建三个文件夹:js,css和images,分别存放js文件,css文件和图片 mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。 mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。 mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。 mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的 Web 服务器上的入口。阅读 如何使用 ASGI 来部署 了解更多细节。 mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。 SETTING.PY中存放一些配置,其中我将database布置在本地的mysql上 'Statistics.apps.statisticsConfig'#注册APP __init__.py文件里配置数据库环境,并强制修改版本号 Statisics这是一个应用 LiveStream是一个项目 绝大多数文件的命令和它们的目的有关(比如视图函数就是views.py,模型就是models.py,测试是tests.py,网站管理设置是admin.py,注册应用是apps.py),并且还包含了为项目所用的最小模板。 .表示当前目录 Step1:创建django项目 Step2:创建应用,并且修改设置 Step3:创建url和视图之间的连接映射 Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。 语法格式: path(route, view, kwargs=None, name=None) route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。 view: 用于执行与正则表达式匹配的 URL 请求。 kwargs: 视图使用的字典类型的参数。 name: 用来反向获取 URL。 通过render将视图与数据分离,{{}}替换该括号间的数据 python system/manage.py runserver views.py使用render函数用于对页面进行填充 login app 负责登录程序 对于调用上一层目录使用 import sys sys.path.append("..") #从上一个目录里调用Statistics from login import views as view_login https://blog.csdn.net/qq_38175040/article/details/104684355 页面跳转问题 修改路径记得用/static/不然会默认从当前路径出发 models.py managed = True 使得django可以对数据库表进行修改操作 request对象方法 https://blog.csdn.net/zhouruifu2015/article/details/130187600
{% csrf_token %}
表示一个动作,调用相应的url函数,给登录按钮设置input标签,type为summit表示提交任务,然后做判断,如果成功则跳入 index1: 换成
在div标签内加入iframe标签,从而达到内嵌数据的目的 解决iframe 127.0.0.1拒绝访问的问题:https://blog.csdn.net/weixin_35757704/article/details/113428811 使用flask生成动态数据来对图表做操作 pye_tem 保存了pyechart的渲染模板 ajax异步渲染html,生成json格式数据,然后传给html模板,进行数据交互。 def bar_demo() -> Bar表示返回柱形图属性 function fetchData() { $.ajax({ type: "GET", url: "http://127.0.0.1:8000/bar/",----url后面跟的是chartview函数返回的一个url,在url.py里设置好了。调用该html直接使用render函数即可 dataType: 'json', success: function (result) { chart.setOption(result.data); } }); $.ajaxSetup( { url: "/index.html" , // 默认URL aysnc: false , // 默认同步加载 type: "POST" , // 默认使用POST方式 headers: { // 默认添加请求头 "Author": "CodePlayer" , "Powered-By": "CodePlayer" } ,--打开ajax设置,默认同步加载方式改为false,因为我们采用的是异步加载方式 Window 和 Worker 接口提供的 setInterval() 方法重复调用一个函数或执行一个代码片段,在每次调用之间具有固定的时间间隔。 var intervalID = setInterval(func, [delay, arg1, arg2, ...]);---delay表示延迟毫秒数 1000表示延迟1秒,func表示要重复调用的函数 通过调用html里的函数,setInterval来进行重复的调用 Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个 HttpRequest 对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响应给浏览器。而这个响应,我们必须返回 HttpResponseBase 或者他的子类的对象。而 HttpResponse 则是 HttpResponseBase 用得最多的子类。 https://www.jianshu.com/p/7a0718e07068--介绍response https://blog.csdn.net/qq_45261963/article/details/123981719--APIview 在body后的style里设置尺寸 {% csrf_token %}数据库调用的安全认证 方法名称中 "Id" 的大小写必须正确才能使代码正常运行;getElementByID() 是无效且无法正常运行的,无论它看起来是多么自然。 getOption()这个方法是把数据克隆了一份,所以直接修改是没有效果的 setOption()这个方法就可以直接修改图表里的数据并且会有效果 test.html使用的echart的方法 https://echarts.apache.org/handbook/zh/get-started 动态图逻辑,通过函数生成js数据格式,再将js数据格式传入javascript写法的echart生成图表文件中 对应的option值方法,echart.js是一些方法的集合吧,包含echart功能的文件,test.html是一个图表 var option = { title: { text: 'ECharts 入门示例' }, tooltip: {}, legend: { data: ['销量'] }, xAxis: { data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子'] }, yAxis: {}, series: [ { name: '销量', type: 'bar', data: [5, 20, 36, 10, 10, 20] } ] }; pyechart生成的js格式的echart os.environ['DJANGO_ALLOW_ASYNC_UNSAFE'] = 'true'增加异步调用 module_dir = os.path.dirname(__file__) path = os.path.join(module_dir, '飞天狙想要努力变胖.csv')使得view函数可以调用本地文件 document.getElementById("GetStartTime").value Django学习报错之Cannot assign ... must be a ... instance ZBJ1235 ZB12346 ZBJJL1234567902 2023-05-25 21:36:00 2023-05-25 23:36:00 USE_TZ = False防止时区上的报错 ''.join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',10))生成随机序列 事实证明其余操作不影响直播间的实时并发,人数和弹幕可以正常保存,但是订单和订单详情无法正常写入,于是决定将订单和订单详情用别的方式去写 我可以尝试教你。根据我的搜索结果¹,你需要把任务添加到线程池的工作队列中去,当一个线程变成可运行状态时,ThreadPoolExecutor从工作队列中取出一个任务,然后在该线程中执行。你可以使用execute方法或者submit方法来向线程池提交任务³。execute方法没有返回值,而submit方法可以返回一个Future对象,用于获取任务的执行结果或者取消任务²。你可以参考下面的代码示例: ```java // 创建一个固定大小的线程池 ExecutorService executor = Executors.newFixedThreadPool(4); // 创建一个任务 Runnable task = new Runnable() { @Override public void run() { // 在这里写你的业务逻辑 System.out.println("Hello, world!"); } }; // 使用execute方法提交任务 executor.execute(task); // 使用submit方法提交任务,并获取返回值 Future future = executor.submit(task); // 关闭线程池 executor.shutdown(); ``` 源: 与必应的对话, 2023/5/26 (1) 任务加入线程池是的生效和启动过程详解_如果有一个任务来了 .... https://blog.csdn.net/leisurelen/article/details/121808513. (2) 向线程池提交任务的两种方式_apple w的博客-CSDN博客. https://blog.csdn.net/beststudent_/article/details/94222442. (3) 异步编程利器:CompletableFuture详解 |Java 开发实战 - 掘金. https://juejin.cn/post/6970558076642394142. django的默认数据库驱动是同步的,它会阻塞协程的执行,导致性能下降。你可以使用异步的数据库驱动,如aiomysql或者aiopg等,来避免这个问题 为了解决数据库高并发连接量不够的问题,采用setting修改底层逻辑的方式 danmu renshu