前言
最近写了几个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
域名访问
写在最后
以上是我个人的经验总结,希望对看到的人能有所帮助。我没有系统的学过计算机编程,一切都源于爱好,喜欢折腾,大家不喜勿喷。