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

如何打包Django项目(2023年最新的完成)

时间:2023-03-06 01:56:13 网络应用技术

  指南:许多朋友问有关如何打包Django项目的问题。本文的首席CTO注释将为您提供一个详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  后端使用的DRF是UWSGI+NGINX

  输入服务器项目文件目录,我的django项目放置在“/usr/myprojects/” directory.create uwsgi.ini文件中的uwsgi.ini文件中。

  测试效果命令:

  如果您访问:xxx.xxx.xxx.xx:8000成功,那么uwsgi.ini配置成功

  我的nginx.conf位置是“ /etc/nginx/nginx.conf”

  配置文件如下:

  1.第一行

  主要是给予NGINX加权。部署历史记录路线后,将删除地址背后的“#”号码。包装部署后,将会有一个错误。

  2.如果显示配置,则有两个服务器部署了前端服务和后端服务。值得注意的是,两台服务器使用同一服务器,这与侦听不同。

  3. VUE部署需要注意反向代理地址:

  和随后的端口问题

  4.后端服务器需要注意该位置的UWSGI_Pass后面的最终口号。

  5.交叉 - 域问题。如果我需要在自己的在线上找到配置,我没有遇到它,因为我在Django的设置中配置了交叉域。

  6. Django Suit背景管理样式已经崩溃,需要更改,但是可以正常访问API。

  7.我开始在后台收听端口8008,并在前端监视端口80中听,以便前端显示出良好的外观。尽管可以正常访问背景API,但VUE的本地开发环境也可以正常运行,并且文本和图片资源都正常显示。结果,它无法显示。对于地图,我选择了前面- 末端监视器以收听端口8008,后端监视80,并且显示后显示正常。原因尚不清楚////////// erly谈论它。

  8.不要问我为什么我将前端和后端分开并在服务器上部署?糟糕,只是测试,这不是必需的

  9.本文仅适合入门

  关于Django的后台管理员(西装)修改(参考:Django中文网站:)

  在环境中输入项目目录,您需要收集CSS样式并在终端中输入命令:

  接下来,您可以找到静态文件包含CSS文件。此时,打开网站,样式显示正常

  UWSGI启动xxx.ini后,将在同一目录中生成xxx.pid文件。UWSGI主要过程的过程数中只有一行内容。

  关于UWSGI,输入同一目录

  课

  如果您无法获得环境,请指定环境

  另外:请记住重新启动UWSGI并重新启动NGINX。

  暴力删除:Fuser -K 80/TCP

  Netstat -aptn命令行,检查所有开放端口号码

  netstat -tlp |GREP 80查看是否使用了特定端口

  PS -EF |grep uwsgi查看是否存在UWSGI端口

  1.应用程序应用程序需要哪种云服务器?为了帮助您了解如何使用阿里巴巴云服务器和相关应用程序,阿里巴巴云的移动云团队已经开发了一个简单的应用程序应用程序:移动云专辑,它将ECS用于API服务部署云专辑(图片信息呼叫,图片,图片,图片清单呼叫)和图片缩小图处理处理,因为此应用程序服务器使用Java语言开发,因此在其上安装了Tomcat来部署应用程序。特定部署1)远程登录:之后首次购买ECS,ECS服务器的根帐号和密码将发送到买方的邮箱,然后买家可以通过远程登录到ECS服务器。特定的遥控登录可以参考以下内容:Windows:中国//help.aliyun/manual?spm = 5176.383518.5.16.4llzznhelpid=59 linux:中国//help.aliyun/Manual/Manual/Manual?2)根据自己的应用程序特征安装Web环境。安装相关的网络服务器Tomcat或Jetty,Alibaba Cloud提供了龙安装部署脚本,为开发人员提供了更多方便,请参阅以下链接:中国//help.aliyun China China/manual?spm = 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0。0.0.0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0 = 129 3)包装应用程序将Web源代码下载到局部区域,并使用命令mvnpackage制作战争软件包。如果不是Maven项目,则可以使用ANT来制作战争包。4)上传战争包Linux可以通过SFTP上传,将战争软件包上传到指定目录进行减压,请参阅特定用法方法:中国//help.aliyun Chine/Manual?SPM = 0.0.0.0.0.0.0.0.0.0.0.0。0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0..0.0..0..0..b0.0..b0.0.b0.0.b0.ite.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0..0.0..0.b0.0..0.t.0.0.0.0..0.0..0..0..0..an。0.01848 5)启动Web服务以启动Tomcat或Jetty Service 6)配置落后中国,特定配置信息的绑定域名参考:中国//help.aliyun中国/手册?help.aliyunchina /manual?spm = 0.0.0.0.0.mkbfj1helpid = 65 2,应用程序应用程序如何将图片保存到云存储服务器中?小文件。当文件数量较大时,文件直接存储在硬盘上,以极大地影响应用程序的访问效率。AlibabaCloud Storage Service Service OSS在存储和管理大型小文件方面具有很大的优势。图片不会从服务器下载,减少服务器压力。AlibabaCloud的OSS备份机制也可以保证文档的存储安全性。它的存储容量可以无限扩展。每秒请求数超过50,000。多行BGP中国,以确保进入该国所有地区的访问权利。SDK(Java版本下载地址:中国//bbs.aliyun Chine /Job.php?=下载= 38817帮助:中国//Aliyun_portal_storage.oss.aliyuncs Chine /oss_api/oss_api/oss_avahtml/index.html)。以下是Ali Cloud的OSS上传图片的代码示例:StringUp。= ossclient.generaateuploadurl(startants.server_url.genate_url,filename,filename,null);int状态= ossclient.uploadfile(uploaduri,path);3,如何在云之后使用云数据库?为了帮助您了解如何使用Alibaba Cloud Server和相关应用程序,Alibaba Cloud的移动云团队已经开发了一个简单的应用程序应用程序:移动云专辑,该专辑使用了提供的MySQL服务RDS。数据库主要存储由用户上传的用户上传的图片, 包括原始地图的信息和存储地址以及存储地址,通过Web -End API向客户端提供数据调用。AlibabaCloud RDS和本地数据库的使用基本上没有什么不同。示例示例如下:1)创建数据库实例以使用阿里巴巴云帐户购买RDS,您可以创建数据库实例。2)创建数据库并管理帐户创建数据库名称并管理用于呼叫数据库连接的应用帐户号。3)访问数据库:创建数据库(测试)后,将帐户添加到数据库测试中:测试,密码:测试,您可以在RDS控制台上检查数据库相关的信息,该信息可以获取数据库的外国中文地址,例如:xxxx.mysql.rds.aliyuncs中国,您可以使用应用程序连接数据库。javajdbc连接到数据库示例代码如下:字符串url =“ jdbc:mysql://xxxx.mysql.rds.aliyun:3306/test”;字符串用户名=“ test”;字符串密码=“ test”;尝试{连接con = drivermanager.getConnection(url,用户名,密码);} catch(sqlexception e){e.printstacktrace();

  。官方网站下载了相应的pyinstall工具,我下载了pyinstaller-3.2.1.zip并将其解压缩

  2.通过CMD转到Pyinstaller目录,并执行安装安装以进行安装。此时,将必要的第三方袋安装到Python路径上。当然,您不在乎细节。

  3.成功安装后可以使用它。

  tk-gui.py是我的源程序

  django-appname(不要与他人的名字冲突)

  放置与应用有关的所有文档

  输入目录

  生成可以分发的焦油文件,收到文件后解压缩文件

  使用Django 2.2。

  一般而言,使用指令NPM Run构建以获取包装的包装,然后将其交给NGINX进行路由转换(配置的位置 /静态)。需要的是配置Django上的可访问index.html路径。

  但是(?),我想在本地测试,也就是说,没有nginx,并且debug = true环境尚未测试。结果,没有欢迎页面进入主页。打开开发工具并表明这就是它的样子:

  解决方案:只需在installed_apps中注册VUE Engineering文件夹即可。

  如果您不注册该应用程序,那么即使您编写文件夹,Django也不会扫描(根目录除外):

  如上所示,我在staticfiles_dir包装的Blogfro(即VUE文件目录)之后写了静态文件夹,但是输入主页时仍然是白屏幕。

  白屏幕的路径表示模板模板是正常的,但是仍然无法加载静态文件。此需要注册的应用程序。注册后,您可以扫描静态文件。

  注册后,已成功显示主页:

  当没有加载该应用程序时,我发现CSS和JS文件放在已注册应用程序(BackND)的静态文件夹中,可以正常显示。此验证静态文件夹的扫描是否需要注册的应用程序。

  以我的项目为例:

  在调试模式下,您只需要static_url和staticfiles_dir。

  根据Django文档,static_url是路径的地图。服务器将考虑将其匹配的路径,然后输入staticfiles_dir指定的目录以查找,并始终尝试返回匹配的第一个结果匹配。

  在生产模式(封闭的调试)中,对静态文件的引用将失败。换句话说,对于性能考虑,我们不将Django服务器用于静态资源请求。我们经常使用其他反向服务器进行发送。

  对于此考虑,Django使用CollectStatic指令将所有staticfiles_dir下的所有文件打包到static_root.dre.ter之后,您只需要配置此静态文件夹即可应用此静态文件夹。

  之后,您可以直接开发Blogfro。开发完成后,使用NPM Run Build,然后直接打开DJANGO服务器进行测试。包装在线时,将内容复制到static_root下方,然后将内容复制到python manage.py collection.plectionstatic(主要是收集admin)资源。

  实际上,问题并未完全解决,但这是由VUE + Django引起的。

  Django使用其自己的静态路径索引,这与VUE有必要冲突。要处理它,必须调试它。

  使用django和vue意味着您要将前端和后端分开,因此开发过程本身是隔离的。双方的交集应为最后一个部署(VUE包装,Django打开生产模式,并且反效力师打开(例如nginx)。这次,静态文件夹属于反服务器管理,不会出现此类问题。

  由于我只有一个人(太痛苦),因此对Debug Vue和Django的需求同时引起了上述问题。

  结论:以上是首席CTO注释给所有人介绍的Django项目的所有内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。