当前位置: 首页 > 网络应用技术

Django如何提高响应速度?

时间:2023-03-05 19:14:35 网络应用技术

  简介:今天,首席CTO Note将与您分享Django如何提高响应速度。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  服务器收到HTTP协议的请求后,将根据消息创建HTTPRequest对象视图函数的第一个参数。

  形式标签中的“获取”和“帖子”

  在HTML中,表单的作用是在标签中收集内容。然后,这些内容将发送到服务器。

  一种表格必须指定两件事:

  表格表格提交的示例:

  您可以在地址栏中看到参数。

  表格表格提交的示例:

  一个-Click Multi -Value GetList方法:

  请求对象的属性是获取的,帖子是querydict类型的对象

  与Python词典不同,Querydict类型的对象用于处理具有多个值的多个值的相同键

  获取属性:

  查看类视图基于请求方法。

  以相应的方式,编写相应的逻辑函数。

  它是在视图中的方法中编写逻辑。

  参考查看视图。

  url.py中的配置路由是通过:as_view()

  当文件上传Django时,文件数据将保存在request.files上。文件中的每个键是输入type =“ file” name =“” /名称中的名称。

  设置文件的存储路径:

  1.在项目的根目录下,在静态中创建媒体文件夹

  2.上传图片后,它将保存到“/static/媒体/文件”中

  3.打开settings.py文件以增加媒体_root项目

  仅在启用请求方法和提交enableype =“ multipart/form-data”的情况下才包含数据。否则,文件将是类似于字典的空对象

  文件由文件函数上传:

  httpresponse对象:

  httpresponse的子类:

  返回数据的响应函数是:

  httpresponse()返回到简单的字符串对象

  Render()渲染模板

  重定向()重定向

  jsonresponse()返回json数据

  HTTP协议:

  HTTP(超文本传输协议)是一个应用程序层协议,由请求和响应组成,是标准客户端服务器模型。HTTP是无状态协议。

  客户端和服务器如何记录登录状态?

  在浏览器中---- cookie :(请自己找到)

  注意:设置cookie值并删除cookie值是响应对象的所有操作,并且从相应的通信中获得了获得的cookie。

  尽管可以保留cookie,但请注意不要存储敏感信息。

  静态静态文件和媒体多媒体(主要是为用户上传)需要存储在目录存储中。创建一个新的s3utils.py文件:

  settings.py添加S3配置:

  因为S3对该机器打开了访问权限,因为它不需要经过认证。

  添加key_id和access_key:

  运行collectstaticdjango管理命令:

  静态文件应结束。

  如果这些模型属性指定upload_to路径,则任何上传的文件字段或ImageField模型都应在中国。

  如果以上配置配置成功,则资源访问域名为

  发现资源加载速度要慢得多,17K需要将近两秒钟,并且对不同区域的访问是不稳定的。

  此时,应牺牲CDN,Zhihu CDN

  cdn主机:http:// xhory.cloudfront.net/,解析域名,设置配置:

  重新启动资源后,通过**访问大大提高了速度。

  AWS_S3_SECURE_RLS:是否启动安全URL,即是否使用HTTPS,默认值,因为HTTPS需要申请证书等。它临时设置为false,并将使用HTTP协议。

  使用staticfiles

  常见命令:

  制作上载目录的参数 - 记录

  AWS CLI命令参考:AWS CLI命令参考

  参考:

  django-s3-tempory

  cname-support-as3_custom_domain-doesnt

  django-fot-server静态档案库,即from-amazon-s3-custom domain

  使用-Amazon-s3到商店,您 - 少女 - 和媒体文件

  新速度很慢,因为您可以使用默认源。默认源是国外的,速度相对较慢。您可以添加家用镜像源。将来,您不仅会安装Django,还将安装需要使用的其他软件包。

  添加国内源方法:

  单击“文件”菜单中的设置,输入设置接口,然后单击+号码以安装Django或右侧的其他袋子

  单击此加号后,点管理源

  然后单击正确的数字以添加家用镜子源。我添加了两个,一个是douban,另一个是阿里巴巴云。

  也有一些常用的来源。我在这里发布了它仅供参考

  #Tsinghua大学

  #Ali Cloud

  #

  #中国科学技术大学

  #华宗科学技术大学

  Julhanghui WMS开放源仓库管理系统

  项目简介:

  完整的开源仓储管理软件,遵循Apache许可证2.0协议,将前端和后端分开,并且是完全开源的。API使用Rentful协议来促进二级发展。前端代码是用Quasar.Multi-Position,交付浪潮,采摘,牛奶运营和其他商业模式构建的。

  软件版权编号:2018SR517685

  GitHub地址:

  githubgithub.com/singosgu/greatewms

  演示地址:

  大WMS开放源仓库管理系统

  业务联系:mail@56yhz.com

  技术交换:GreaterWMS-01(加上微信条目组)

  项目原始意图:

  我在供应链行业工作了15年,发现在我们的专业领域,没有高级和高定义软件来深入支持我们的业务。大多数软件都关闭了,很难做到这一点二级发展。即使开发,周期非常长,并且未能开发的情况都比比皆是。该公司选择了软件,其第二次开发也将受开发公司的约束。至于第二次开发成本,只能说。因此,我设计了这款Ju Shanghui WMS,以实现高度的自由度和仓库管理软件的高客户开发,以深入支持企业的业务。

  愿景:如果您从事非行业的工作,并且热爱您的行业,那么请使用技术来改变他。

  生命周期

  v 1.0.0 - 2019年7月至2020年12月(因为1.0.0版本的第二个开发设计更为复杂,2.0被重写))

  v 2.0.0- 2020年12月?2021年3月(重写业务逻辑,本机自行构建的API开发文档,添加真实的 - 时间通信,方便企业用户可以相互通信)

  v 2.1.0 - 2021年3月至2021年6月(添加了客户与企业之间的实时交互,以增强企业与客户之间的业务联系,实现VMI)

  v 2.2.0-6-6月2020年?2021年9月(供应商与企业之间的实时互动增加,增强企业与供应商之间的业务联系,并实现牛奶运营和看板拉力)

  v 2.3.0 - 2021年9月?2021年12月(股票管理原型,最初添加了神经网络,深度学习清单的更改)

  v 3.0.0- 2021年12月至2022年3月(完全植入了神经网络,使上游和下游公司能够整体运营整体业务)

  v 3.1.0 - 2022年3月3日至2022年6月(区域仓库业务布局,通过深度学习,实现的多软件运营,最小化的成本)

  发展环境:

  Python版本为v 3.8.0 +

  django版本为v 3.1.0 +(此版本Django仅是异步的真实时间通信的原生)

  Django-Rest-Framework版本是V 3.12.2 +(Django-Rest-Framework的较高版本与Django3更好地兼容)

  Django-Silk版本为v 4.1.0(如果部署并启动了它,请关闭丝绸。丝绸仅用于调试API接口速度,这可能会泄漏用户信息)

  Quasar版本为v1.7.2 +(您可以查看Quasar的官方网站,以编辑大wms前端代码:Quasar官方网站)

  VUE版本为v 2.6.0 +(尽可能不使用VUE3,因为开发环境不使用VUE3,我不知道会发生什么问题)

  API,遵循宁静的架构

  构造命令:

  下载代码:

  git克隆

  安装Python库:

  PIP安装-R要求.txt

  注意:安装需要扭曲的库。有时,该库将不会安装。您需要下载本地安装

  下载地址:扭曲

  PIP安装扭曲{您下载的版本名称}

  注意:注意本地安装的路径

  初始化数据库:

  python manage.py makemigrations

  迁移数据库:

  python manage.py迁移

  创建数据库,Django默认为数据库。如果我需要MySQL数据库,请在oreaterwms/settings.py中配置数据库。

  开发服务器操作:

  开发和操作:

  Daphne -P 8008大wms.asgi:申请

  生产服务器操作:

  监督监护人流程:

  PIP安装主管

  使用主管保护Django过程,然后使用Nginx进行反向代理。至于crrevisor教程,有许多教程。

  NGINX支持:

  建议使用nginx进行部署。部署时,您需要指定Websocket链接。如果未指定,真实的时间通信功能将报告错误

  还需要在Axios_request.js中修改WS_URL

  ##示例在更改之前

  const baseurl =''

  const wsurl ='ws://127.0.0.0.1:8008/'

  ##示例更改

  const baseurl ='https://您的域名/'

  const wsurl ='wss://您的域名/websocket/'

  如果服务器启用了SSL,请使用HTTPS和WSS。如果未启用SSL,请使用HTTP和WS

  修改后,您需要重新构建前端代码

  发展扩展:

  由于使用了前端和后端分离设计,因此您可以通过API开发更多的软件应用程序

  物流智能AGV

  AGV项目也是开源的。由于场地有限,仅智能交付,固定点库,可追溯传感器,超声波障碍物避免,红外障碍物避免传感器,所有指令均通过网络传输,AGV被绑定,AGV绑在Mac地址和IP地址上确保安全。前提是您需要一所覆盆子学校。

  卖

  您可以将其直接用作输入和库存系统,简化仓库库设置和其他操作。

  应用程序和小程序

  可以将Quasar直接包装到iOS应用程序和Android应用中

  可以通过API开发小程序的开发,但是小程序不支持PUT请求,因此您需要编写另一个请求接口。

  API的组合可以达到100万种,因此我们可以根据查询请求获得真实的时间报告和数据监视

  供应链管理系统

  产品数量,创建时间和使用的最后时间是统计信息,因此可以方便

  v 2.3.0及其未来版本将带来自己的深度学习分析,因此您可以将分析结果直接用作供应链管理系统工具

  多软件管理

  OpenID是用户数据的唯一徽标。数据组均匀地识别为appid,因此很方便

  接送,交货

  您可以设置固定的时间将请求发送到服务器以实现Wave -to -plick选择的功能

  您也可以通过API查询分析结果直接使用任务工作,建议使用APSCHEDULER

  ~~~ python pip安装apscheduler ~~~

  牛奶运营

  v 2.2.0及以上版本将在本地支持此功能

  如果您现在需要此业务,可以根据API调用库存消费以实现此功能

  VMI

  v 2.1.0及其上述版本将在本地支持此功能

  如果您现在需要此业务,可以根据API调用库存消费以实现此功能

  选择路线优化

  当前的采摘路线是根据仓库进行排序的

  v.3.0版本将在本地支持此功能

  如果现在需要此业务,您可以根据每日选择详细信息致电API以实现此功能

  开发指南:

  baseurl

  这是启动请求的基本网站。如果是本地调试,默认值是如果它部署在服务器中,则需要更改为您的网站以访问URL

  修改方法是修改Axios_request.js,并注意

  django-silk

  Django-Silk是用于开发的调试工具,以计算每个接口的响应速度。如果有必要部署到生产环境,请删除Django-Silk相关的配置,因为存在泄漏用户信息或直接修改Django-Silk库的风险,让用户只看到他们的请求数据

  数据库存储

  数据库设计考虑了诸如数据迁移之类的问题,因此只有用户_id和django在用户中作为外部键都包含User_id。所有其余字段均未使用。它方便用于数据备份和数据库迁移

  数据库是4个阶段设计

  验证数据用户属于

  验证数据安全性

  验证数据可以存储在数据库中

  留在数据库中并返回响应

  关于数据传输

  您需要将令牌值添加到所有请求头标题中。此值是用户数据唯一徽标OpenID

  所有数据传输都需要将内容类型设置为应用程序/JSON

  OpenID

  OpenID是注册用户数据的唯一标识。当管理员直接注册时,将有开发人员= 1个管理员徽标。

  您可以根据开发人员徽标进行自定义二级开发

  苹果

  appid是用户数据组的唯一徽标

  如果您需要多个公司才能进行更多操作或运营,则可以使用Appid进行统一的链接来实现多组合和多位置操作

  用户权利

  如果没有太多对用户权限的限制,请根据自己的业务需求进行次要开发限制

  业务流程:

  行政人员

  单击注册,您可以注册为管理员帐户,以实现初始化程序设置

  注册后,您将获得2个ID和1个开发人员徽标。OpenID是用户数据组的唯一徽标。此OpenID下的所有数据均受OpenID的约束。appid是用户组数据的唯一徽标。功能,开发者徽标是一个布尔值,正确意味着这是一个管理员帐户

  两种类型的用户登录:

  使用OpenID和员工名称直接登录

  管理员使用帐户和密码登录

  登录后,前端将存储登录信息

  您可以通过查看我的OpenID来查看用户数据组的OpenID

  如果您需要多个公司和更多仓库运营,请注意更改OpenID

  有关更多管理员的权限,请自行开发

  员工管理

  在注册管理员之后,创建一个新员工

  员工有2个字段,suff_name(用于员工登录),Staff_Type(员工类型以控制员工的权限)

  该系统对员工权威没有任何限制。如果需要员工权威,请根据企业的业务模型独自修改模板

  单击编辑以修改员工信息

  单击删除以删除员工信息。系统将在后台调整iS_DELETE为true

  单击Contatic:

  您可以实时与您的员工聊天,但您无法与自己聊天

  您可以创建一个新的备忘员员工,该员工实际上用作备忘录

  在个人中心,您可以查看最近的联系人

  消息徽标将提醒您现在有多少个未读消息

  驾驶员管理

  驾驶员管理仅在交货过程中使用

  您需要知道哪个驾驶员正在捡起并拿走了货物

  仓库设置

  仓库

  仓库的创建只能创建一个仓库,现在可以创建它,但是只有第一个才能起作用

  如果您需要更多职位,则可以将appid用于二级开发,也可以直接创建管理员帐户

  仓库中的城市必须填写。这用于计算货运

  bin_property

  库属性确定仓库中货物的哪些属性

  四个属性:损坏,锁定(锁定),检查,正常(正常)

  在beta版本中,可以修改和删除属性,官方版本将不会删除和修改

  所有交货只能与普通图书馆的商品相匹配

  收到的货架和移动的库将根据库的属性直接修改库存数量。仓库中的库存量不会显得负面

  bin_size

  仓库的大小是帮助操作员检查是否可以将货物放入图书馆

  当前版本未检查架子和数据库的大小,将来将添加自动检查

  bin_set

  库设置是必需的,通常库设置是水平垂直和垂直的,例如A010101,即水平01垂直01水平01垂直

  库的设置需要设置库属性和大小,并且该属性非常重要。他决定该图书馆中的商品是否是普通商品

  基本设置

  公司

  公司基本信息的创建只能创建一家公司,现在可以创建它,但是只有第一个才能发挥作用

  如果您需要多个公司来处理,则可以将appid用于二级开发,也可以直接创建管理员帐户

  必须填补公司的城市。

  供应商

  供应商的基本信息

  必须填补供应商的城市。

  顾客

  客户基本信息

  必须填补客户的城市。

  产品管理

  单元

  产品的单元将初始化系统的创建,但您可以自己添加和修改它

  班级

  可以单独添加和修改商品的类型

  色彩

  产品的颜色,系统将初始化创建,但您可以自己添加和修改它

  品牌

  可以单独添加和修改产品的品牌

  形状

  产品的形状,系统将初始化创建,但您可以自己添加和修改它

  眼镜

  可以自己添加和修改产品的规格

  起源

  产品的起源可以自行添加和修改

  商品清单

  商品清单

  固定资产

  首都

  创建固定资产,不做太多扩展,只记录和使用

  可以计算托盘帐户,等等。

  库存管理

  股票清单

  图书馆中货物的总库存数据

  ONHAND_STOCK现有库存

  可以订购,可用于订购和运输库存数量,因为已经订购了一些商品,尽管存在现有库存,但不能再订购了

  订购库存,已放置的商品数量

  ASN库存,我已经收到了到达的通知,但是尚未确认的商品数量

  DN股票已被放置,但尚未确认订单数量

  预先负载,期望商品数量

  预先排序,已经到达,卸载,等待排序的商品数量

  分类库存,商品的分类,等待货架的货物数量

  采摘股票,送货订单已经产生,等待采摘的商品数量

  采摘的股票,已捡起的商品数量,等待与驾驶员交流的商品数量

  返回订单库存

  垃圾箱

  总库存,该产品的所有库存

  采摘库存,此仓库中的采摘者数量

  采摘股票,选择此数据库的数量已完成

  移至bin,移动库,然后移动库后,将根据库属性直接更新库存的数量。如果所有库级都清空,则将库作为空图书馆位置更新

  空垃圾箱

  空图书馆详细信息

  被占领的垃圾箱

  非空存储

  收据管理

  ASN到达通知状态

  ASN状态= 1,创建了ASN的到达通知,状态1是唯一可以删除和修改ASN信息的状态。他将在交货前展示,也就是说,有一个到达的通知,但尚未到达,单击确认。交货,也就是说,确认货物已经到达,目前已更新到2更长的修改ASN信息

  ASN状态= 2,扩展并开发驱动程序以排队。如果我们有很多驱动程序到达,则可以将其制成排队系统。单击装载加载以确认货物已卸载。ASN状态已更新为3,商品信息将出现在分类中。目前,ASN状态表示已将货物卸载到仓库并等待排序

  ASN状态= 3,货物排序是一个必要的过程。没有商品排序。到4,确认排序,等待货架

  目前,排序的页面将出现在需要放在架子上的详细信息上。单击“移动到垃圾箱”完成。当然

  交付管理

  DN交货订单状态

  DN状态= 1,创建DN交付表格。目前,该订单仍可以修改,系统中的库存量不会更改。单击确认订单。换零,同时将自动更新系统中的货物清单数量,例如CAN订单数量和订单数量

  DN状态= 2,这是确认等待选择顺序的过程,您可以单击订单发布以生成订单的选择列表。如果所有订单都是相关的,那么库存匹配根据时间。当库存不足时,将生成后源,即欠订单。在此过程中,DN单个数字将更改,例如更多的客户。该订单将按顺序统一选择。如果无法满足客户订单,则不会对欠款的产生感到满意。如果欠订单不太匹配,则不会重新出现在新订单中。DN状态将更新为3,即等待选择的过程。当确认的订单和欠款是状态的状态为2时

  DN状态= 3,直接选择,此功能将出现在Beta5更新中,暂时未更新

  DN状态= 4,已发货和传输,此功能将出现在Beta6更新中,暂时未更新

  DN状态= 5,客户签名,此功能将出现在Beta7更新中,未临时更新

  DN状态= 6,收据结束,订单已关闭,此功能将出现在Beta7更新中,暂时未更新

  返回管理

  RO返回订单此功能将出现在官方版本中

  货运管理

  运输费API已经完成,前端尚未更新。如果要使用它,则可以直接致电付款中的运输费API。

  结论:以上是Django如何介绍主要CTO注释Django如何提高响应速度的全部内容。我希望这对每个人都会有所帮助。如果您仍然想了解更多有关此信息的信息,请记住要收集对该网站的关注。