宝塔面板2024年【python项目】中部署django


用的是CentOS系统(python项目管理器目前只有centos的宝塔才能安装),以下是操作过程,希望大家可以少踩坑

基本情况说明:

  • 系统 Alibaba Cloud 3
  • 宝塔 8.1.0 + 【网站】【python项目】部署
  • django是4.1版本

操作流程

进入宝塔面板,【网站】【python项目】进行相关操作

1. 添加项目

选项 填写说明
项目路径 如 /www/wwwroot/blog/
项目名称 如blog
运行文件 /www/wwwroot/blog/blog/wsgi.py
项目端口 如8000,看自己需求
python版本 我选择的是python3.8.12
框架 django
运行方式 gunicorn
网络协议 wsgi
安装依赖包 选择对应的requirements.txt
其中一些选项说明:
  • python版本 可以在【Python项目】的【Python版本管理】中安装各种python版本
  • python版本安装路径 www/server/pyporject_evn/下面的对应路径
  • 启动方式 用的是gunicorn,所以在django项目settings.py文件的【INSTALLED_APPS】中添加"gunicorn"
  • 安装模块依赖 可以在本地项目开发环境中通过“pip freeze > requirements.txt”导出requirements.txt文件,勾选后【python项目管理器】会根据requirements.txt来安装模块

2. 域名管理、映射

  • 启动项目,在该项目的【设置】【域名管理】输入域名(没有也可以输入IP),在【外网映射】中开启外网映射

3. 静态文件访问设置

在该项目的【设置】配置下【配置文件】,在{}中最后一行追加如下代码:

    location /static/ {
        alias /www/wwwroot/blog/mystatic/;
    }
    location /media/ {
        alias /www/wwwroot/blog/media/;
    }
其中一些选项说明:
  • 我在项目的settings.py文件中STATIC_ROOT的一些配置
ALLOWED_HOSTS = ['*']
Debug = False
STATIC_ROOT = os.path.join(SITE_ROOT, 'mystatic')
#   我用的mystatic,也可以其他的,不要用static,可以少踩坑
  • 如果网站admin后台样式没有,可能是你静态文件没导出
#导出静态文件
python manage.py collectstatic
  • 如果logo显示不出,在urls文件中添加
from django.views.generic.base import RedirectView
urlpatterns+=[path('favicon.ico', RedirectView.as_view(url='/static/CACHE/favicon.ico'))]