每天40分玩转Django:Django摆设概述

[复制链接]
发表于 2025-11-18 19:14:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、Django摆设概述

在开发阶段,我们通常使用Django内置的轻量级开发服务器runserver。但在生产情况中,为了应对大量并发哀求,必要使用高性能的WSGI服务器,如Gunicorn、uWSGI等。同时还要设置Nginx等Web服务器作为反向署理,实现负载平衡、静态文件处置惩罚等。下面是Django摆设的团体架构体现图:
二、设置生产情况

为了在生产情况中摆设Django项目,我们必要安装和设置一系列组件。下面列出了详细步调:

  • 安装Python和捏造情况
    在服务器上安装与本地开发情况类似版本的Python,然后创建独立的捏造情况。
  1. # 安装Python 3.8
  2. sudo apt install python3.8 python3.8-venv
  3. # 创建并激活虚拟环境
  4. python3.8 -m venv myenv
  5. source myenv/bin/activate
复制代码

  • 安装项目依赖
    将Django项目上传至服务器,在捏造情况中安装项目所需的依赖包。
  1. # 安装依赖
  2. pip install -r requirements.txt
复制代码

  • 设置情况变量
    为了区分开发和生产设置,我们通过情况变量来控制settings模块。
  1. # 设置环境变量
  2. export DJANGO_SETTINGS_MODULE=myproject.settings.prod
复制代码

  • 初始化数据库
    在生产情况下,我们通常使用MySQL、PostgreSQL等数据库。必要在settings中设置数据库毗连,并实验数据库迁徙。
  1. # settings/prod.py
  2. DATABASES = {
  3.     'default': {
  4.         'ENGINE': 'django.db.backends.mysql',
  5.         'NAME': 'myproject',
  6.         'USER': 'admin',
  7.         'PASSWORD': os.environ['DB_PASSWORD'],
  8.         'HOST': '127.0.0.1',
  9.         'PORT': '3306',
  10.     }
  11. }
复制代码
  1. # 执行数据库迁移
  2. python manage.py migrate
复制代码
三、设置WSGI服务器

WSGI(Web Server Gateway Interface)是Python Web框架与Web服务器之间的尺度接口协议。在生产情况中,我们必要使用高性能的WSGI服务器来运行Django应用。下面以Gunicorn为例举行详细分析。

  • 安装Gunicorn
  1. pip install gunicorn
复制代码

  • 编写WSGI入口文件
    在项目根目次下创建wsgi.py文件,作为WSGI服务器的入口:
  1. # wsgi.py
  2. import os
  3. from django.core.wsgi import get_wsgi_application
  4. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings.prod')
  5. application = get_wsgi_application()
复制代码

  • 使用Gunicorn启动Django应用
  1. # 启动Gunicorn
  2. gunicorn myproject.wsgi:application -w 4 -b 0.0.0.0:8000
复制代码
上述下令启动了4个工作历程(-w 4),监听8000端口(-b 0.0.0.0:8000)。

  • 设置Gunicorn参数
    对于高并发场景,我们必要对Gunicorn的参数举行调优。下面是几个常用的参数:
参数寄义示例-w,–workers工作历程数-w 4-b,–bind监听地点和端口-b 0.0.0.0:8000–max-requests每个工作历程最大哀求数–max-requests 1000–timeout哀求超时时间(秒)–timeout 30一个完备的启动下令示例:
  1. gunicorn myproject.wsgi:application -w 4 -b 0.0.0.0:8000 --max-requests 1000 --timeout 30
复制代码
下图展示了Gunicorn的工作流程:
四、设置Nginx

使用Nginx作为反向署理服务器,可以提供负载平衡、静态文件处置惩罚、SSL停止等功能。Nginx与WSGI服务器共同,可以显着提拔Django应用的性能和并发本领。

  • 安装Nginx
  1. sudo apt install nginx
复制代码

  • 设置Nginx
    在/etc/nginx/sites-available/目次下创建项目的设置文件:
  1. # /etc/nginx/sites-available/myproject
  2. upstream django {
  3.     server 127.0.0.1:8000;
  4. }
  5. server {
  6.     listen 80;
  7.     server_name example.com;
  8.     location /static/ {
  9.         alias /path/to/staticfiles/;
  10.     }
  11.    
  12.     location / {
  13.         proxy_pass http://django;
  14.         proxy_set_header Host $host;
  15.         proxy_set_header X-Real-IP $remote_addr;
  16.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  17.     }
  18. }
复制代码
在上述设置中:

  • upstream块界说了名为django的上游服务器组,这里指向了Gunicorn监听的127.0.0.1:8000
  • server块监听80端口,servername为example.com
  • 静态文件哀求由Nginx直接处置惩罚,存放在/path/to/staticfiles/目次下
  • 其他哀求转发给django服务器组,并添加须要的哀求头
然后在/etc/nginx/sites-enabled/目次下创建立置文件的软链接:
  1. sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
复制代码

  • 重启Nginx服务
  1. sudo service nginx restart
复制代码
五、启动Django应用

完成以上设置后,我们就可以使用Gunicorn启动Django应用,并通过Nginx提供服务了:
  1. # 启动Gunicorn(4个工作进程,绑定到8000端口)
  2. gunicorn myproject.wsgi:application -w 4 -b 0.0.0.0:8000 --max-requests 1000 --timeout 30
复制代码
如今,访问Nginx监听的80端口,就可以哀求到Django应用了。以上就是Django生产情况摆设的详细步调和分析。在实践中,还必要思量更多因素,如数据库优化、缓存、异步使命、日志日志处置惩罚等,这必要我们不绝学习和实践。
小结:

本文详细先容了Django摆设的关键内容,包罗生产情况设置、WSGI服务器和Nginx的安装与设置。

怎么样本日的内容还满足吗?再次感谢朋侪们的观看,关注GZH:凡人的AI工具箱,复兴666,送您代价199的AI大礼包。末了,祝您早日实现财务自由,还请给个赞,谢谢!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表