文章目录
-
- Django项目与服务器环境
- 连接服务器&安装宝塔面板
- 在宝塔面板中安装环境
- 打包Django项目&上传项目到服务器
- 运行项目
- 解决静态文件不能加载的问题
- 完成啦!
- 参考
Django项目与服务器环境
服务器环境
项目环境
- Python 3.8.6
- Django 2.0.1
连接服务器&安装宝塔面板
- 连接到服务器,这里以阿里云控制面板中连接到服务器为例:
注意:先切换到root的权限模式,便于后续的安装工作。
- 在宝塔面板官网中选择Centos版本的链接:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
- 记录下宝塔面板连接的链接、账号、密码:如下图
- 根据上面的信息登录到宝塔面板,登录进去后的界面如下:
在宝塔面板中安装环境
安装Python项目管理插件
注意:好像只有在Centos系统的宝塔面板中才有这个插件,我使用Ubuntu的时候没有找到。
- 点击宝塔面板左侧中软件商店中,进入后,搜索“python”,就可以看到下面有这个插件,点击安装.
- 安装成功后,点击右侧的设置,进入下面的界面,选择版本控制,安装相应的python版本。
打包Django项目&上传项目到服务器
打包Django项目
- 进入Django项目中manage.py所在的文件夹的终端,使用下面的命令对项目的依赖包进行打包,生成requirements.txt文件。(这一步骤其实相当于就是把项目中需要安装的第三方库记录到requirements.txt中,到时候在服务器上面根据这个requirements.txt再配置这些第三方库。
pip freeze > requirements.txt
上传Django项目
- 将Django项目上传到**/www/wwwroot**所在的文件夹中,例如下面的hello项目。
运行项目
在Python项目管理插件中添加项目
- 在左右的软件商店里找到Python项目管理插件,然后点击设置,添加项目。里面的各种选项很简单,按实际情况填写就行。
注意
- 这里Python一定要选择前面安装的那个版本,另外一定选择uwsgi方式启动
- 箭头的位置,一定要定位到wsgi.py那个文件,因为这是启动文件。
- 端口可以自己进行选择,这里默认使用8000,但是到时候访问的网址的时候不需要加端口8000.
映射地址
- 点击 “映射”,然后输入网址,或者可以直接输入IP地址,例如:123.45.78.10。
- 然后就可以进入这个网站了,但是注意使用的访问网址是http://123.45.78.10 , 而不是http://123.45.78.10:8000
- 提醒:这里一定要进行地址映射,很多教程都没有写,否则不能进入网站中。
解决静态文件不能加载的问题
问题:到此为止,这个项目部署已经完成了90% , 但是我们会发现此时的网站没有样式,也就是不能加载css,js,img这些静态文件。
网上大部分教程给出的解决方案
- 修改setting.py文件:在setting.py文件中添加下面的代码。
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
- 修改网站配置文件:这一步很有可能出问题,应该按照后面那个模块的方式更改。
在下面图片中网站的配置文件,添加路径信息。添加的代码为
location /static
{
alias /www/wwwroot/项目名/static/;
}
- 进入python虚拟环境中,收集静态文件:
# 首先激活python虚拟环境
source www/wwwroot/项目文件夹名/项目名_venv/bin/activate
# 进入项目文件夹
cd www/wwwroot/项目文件夹名
# 收集静态文件
python manage.py collectstatic
- 重启项目
正确的配置
- 上面的修改中其它步骤并没有问题,但是问题出现在第二步。
- 第二步正确的修改方式应该采用下面的代码:
location ^~ /static/ {
root /www/wwwroot/项目名/;
}
完成啦!
到此为止已经完成了使用django的部署啦!
参考
- 视频链接:包含数据库的部署
- 参考教程一
- 参考教程二