【教你】用宝塔面板部署Django程序:Python副业技术总结

前言

最近写了几个Django项目,写完以后怎么让对方测试成了问题,因为之前都是自己在本地写的练习项目,对于部署这一块很陌生,不知道怎么操作,内心很忐忑。没办法,只能硬着头皮上,一边百度,一边摸索,以下是我自己总结的用宝塔面板部署Django程序的步骤,希望看完对你能有帮助。

1.Django部署前准备

1.1 修改settings.py

DEBUG = False
ALLOWED_HOSTS = ['*']
STATIC_ROOT = BASE_DIR / 'static'
# 如果还有media文件等,这里也要注明,如:
MEDIA_ROOT = BASE_DIR / 'media'

1.2 修改url.py,定义资源路由信息

注意这里的urls.py不是应用的urls.py

urlpatterns = [
    path('admin/', admin.site.urls, name="admin"),
    path('', include("app01.urls")),  # 将应用的urls 加入到 urlpatterns 中
    re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}, name='static'),
]

1.3 收集静态资源

可以在终端输入

python manage.py collectstatic

也可以在pycharm的manage.py任务里运行

collectstatic

命令执行后,会在项目里创建static文件夹

├─app01
├─generator_query
├─publicstatic
├─static   # 静态文件
├─templates
└─__pycache__

 

1.4 生成依赖文件

在终端输入

pip freeze > requirements.txt  

2. 服务器端准备

2.1 安装宝塔面板

安装宝塔面板的方式和命令宝塔官网已经给了很明确的说明,这里就不再赘述,建议选择仅宝塔面板

2.2 安装应用

需要安装的应用有3个:

python项目管理器 2.0

nginx 1.20

mysql 我这里安装的是8.0

2.3 创数据库

建议先更改一下数据库的root密码,默认密码是admin

创建数据库并导入数据

导入本地数据库的数据

这里需要注意,Django自带的sqlite3和mysql不同版本的数据导入会报错,我本地和服务器用的mysql版本一样,可以正常导入。

3. 上传文件

上传文件需包含

解压文件到当前路径

解压后

4. 部署Django程序

4.1 python项目管理器

4.1.1 安装python

安装python,因为我本地用的是3.8.2,这里只有3.8.5版本可以选择

这里发现的问题是,可能点击“版本管理”的时候会显示请求失败,解决办法就是卸载“python项目管理器”后重新安装。

4.1.2 添加python项目

添加项目成功后打开模块发现并未安装依赖文件里的包,不知道是什么原因,但是可以换一种安装方式,因为python项目管理器在部署的时候已经帮我们创建好了虚拟环境,直接激活他的虚拟环境,然后用pip安装

在宝塔终端输入

find / -name activate

搜一下虚拟环境入口

注意这里的“1407f88cddcd38b6fbb5d853581df1d1_venv”与我们上传文件路径下面的文件夹名一致,这个就是python项目管理器创建好的虚拟环境

然后激活虚拟环境

source /www/wwwroot/querydata/generator_query/1407f88cddcd38b6fbb5d853581df1d1_venv/lib/python3.8/venv/scripts/common/activate

按照python项目管理器的提示,在终端输入

/www/wwwroot/querydata/generator_query/1407f88cddcd38b6fbb5d853581df1d1_venv/bin/pip list

查看当前环境安装的python包

如果这一步成功了,那我们可以用它来安装依赖文件。

首先,找到依赖文件的路径,找到requirements.txt后,右键-属性,复制路径

然后激活虚拟环境后在终端输入以下命令就可以安装了

/www/wwwroot/querydata/generator_query/1407f88cddcd38b6fbb5d853581df1d1_venv/bin/pip install -r /www/wwwroot/querydata/generator_query/requirements.txt

查看安装好的模块

4.2 另外一种安装模块的方式

如果你不想这么麻烦,可以在python项目管理器里面点击“模块”,然后手动安装。

可以看到,依赖文件的包都已经安装了。

4.3 设置网站访问

4.3.1 IP地址访问

国内的域名都需要备案,没备案的无法设置域名访问,因为在部署的时候我设置了端口为9001,只需要在宝塔面板的“安全”里和服务器的安全策略中修改“入方向规则”,放行“9001”端口,就可以用IP:9001的方式访问

4.3.2 域名访问

由于我租用的是HongK的服务器,所以可以用域名访问。在项目管理里面点击映射,添加域名

添加服务器IP

域名访问

写在最后

以上是我个人的经验总结,希望对看到的人能有所帮助。我没有系统的学过计算机编程,一切都源于爱好,喜欢折腾,大家不喜勿喷。

物联沃分享整理
物联沃-IOTWORD物联网 » 【教你】用宝塔面板部署Django程序:Python副业技术总结

发表评论