宝塔618特惠活动,企业版999元/年,宝塔SSL证书买1送1!限时抢购!查看活动
当前位置:论坛首页 > Linux面板 > Linux面板教程

堡塔面板9.6.0+Python网站部署教程

发表在 Linux面板2025-3-17 11:25 [复制链接] 0 1398

本文讨论了Python部署的相关内容,包括Python环境准备、下载源码、修改配置信息、添加项目、检查运行状态、创建管理员、实现生产级部署、配置域名和外网映射以及动静态分离等步骤。关键要点包括:​
一、Python环境准备:下载Python版本并创建虚拟环境,避免包结构混乱。​
二、下载源码:通过git clone https://gitee.com/lylinux/DjangoBlog.git下载源码。​
三、修改配置信息:将默认的mysql数据库切换为pgsql,添加psycopg2-binary第三方库,使用环境变量文件配置数据库和redis缓存。​
四、添加并初始化项目:填写项目信息,执行初始化命令,若未执行可能导致启动失败。​
五、检查运行与创建管理员:检查项目运行状态,创建管理员。​
六、生产级部署:关闭DEBUG模式,将web应用托管给uWsgi服务,通过nginx代理服务并实现动静分离。​
七、配置与测试:配置域名和外网映射,使用命令收集并压缩静态文件,通过NGINX路由重写实现动静态分离后进行访问测试。


1. Python环境准备
a、版本下载
图片1版本下载.PNG

b.虚拟环境建立, 使用刚才安装的Python环境创建一个虚拟环境,防止包结构混乱带来的管理麻烦
图片2虚拟环境配置.PNG

2. 下载源码,调教一下数据库链接配置
a.  1. git下载git clone https://gitee.com/lylinux/DjangoBlog.git  
图片3下载项目源码.PNG

b.配置文件
i.djangoblog项目默认推荐使用的是mysql数据库,但是我测试的机器没有安装,故切换为pgsq数据库
ii.在djangoblog项目的配置文件在/DjangoBlog/djangoblog/settings.py,可以看到默认使用的数据库信息, 和redis缓存方式
1d7759fc8b4439f42f09e8ecae2ad3b2.png

78890febb644228bc9eadbb274c2ccca.png

iii.修改为支持pgsql, 因为使用了pgsql,所以需要再第三方包记录文件中添加 psycopg2-binary这个链接pgsql的第三方库
1d1ed90e26490b237aac69a3784d0f38.png

iv.因为该项目支持从环境环境变量获取配置信息,所以这里我使用创建一个名为myenvd的环境变量文件来配置数据库和redis缓存,方便后续管理
b86c4e21ba9ea6adfe2fc29021649f19.png

5954caa471c5d848279d0054bd2f2200.png

3.添加python项目
a.填写项目信息
85d2a93e0c08ff8c2e25b4bbc7d4c412.png

b.初始化命令,这个也可之后自己在终端输入执行,不过django项目需要数据库信息才能正常访问,所以这里如果没执行初始化命令,会启动失败
f71df5e699f13e24caa12bc89bb9fcd5.png

18c52f9c633ac49846a158ae1eff92d7.png

c.等待项目创建成功
30fc51ff962ccb29dafe35c3f0764c84.png

4.检查运行状态

a.正常运行, 如果没能正常运行可以检查是否有遗漏某些操作,没执行初始化是可能会出现启动失败的
38ea5d3b0c428c0815cf6c8e1120520f.png

b.创建管理器
f195078fd799b42afa7e5599f8a11792.png

c.直接访问服务, 发现访问失败,排查后发现本地监听的是127.0.0.1不是0.0.0.0,内网无法访问,遂修改启动命令,使内网可直接访问
eae0b571f502c8d30ea9123601d17251.png

bf61fff189b3c5e584115197b6367965.png

e6df7075b6b8da01e1259be24ae8d6c6.png

342feba8ff127a8bbd8249abec5f2d4e.png

5.实现生产级部署 (nginx + uwsgi + 动静分离)
a.这里测试DjangoBlog项目是一个基于python的wsgi网络协议运行的,可将web应用托管给uWsgi服务,提高运行效率,在通过nginx代理服务,同时将静态文件分离由nginx直接返回。
b.关闭DEBUG模式,切换到uwsgi服务运行
a9b226484c6a3957aef585839fd6b219.png

029cbb8a75c356ba8a99f68fe8a84c46.png

c.配置域名 (此处测试是通过本地host设置代替DNS域名解析的)
6df056485c72ae2629fef4cebcd691c6.png

d.配置外网映射
711b22366f374592ff9e5a2c16b45c81.png

2d1ff266beea2b8063ba64767fe13ad4.png

e.配置动静态分离, djangoBlog项目支持将静态文件收集并压缩,放在一个固定的文件夹下,同时使用/static/.*的路由格式访问静态文件。静态文件收集并压缩的命令是之前初始化执行的命令
  1. python manage.py collectstatic --noinput
  2. python manage.py compress --force
复制代码


由于Django将数据收集到了collectionstatic目录,所以此处我将使用NGINX路由重写实现
  1. location /static/ {
  2.     rewrite ^/static/(.*)$ /collectedstatic/$1 break;
  3. }
复制代码

bfe9fe30a60334f927ba551f7a6d6caa.png

访问测试
85ded22d829365575cd01371b9ad9017.png

使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表