Django 6中文教程

17.1 部署环境搭建

Django 6 部署环境搭建完整教程:Linux服务器配置、Python环境隔离、数据库与Redis部署

Django 6中文教程

这篇详细教程教您如何搭建Django 6项目的部署环境,包括Linux服务器(CentOS/Ubuntu)配置、Python环境隔离与依赖安装、数据库(MySQL/PostgreSQL)部署与配置、Redis(用于缓存和Celery消息代理)部署,适合初学者从零开始学习。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

Django 6 部署环境搭建完整指南

引言

Django 6 是一个强大的Python Web框架,但在部署项目之前,需要正确配置服务器环境。本教程将逐步指导您搭建一个完整的部署环境,从Linux服务器设置到依赖安装,确保您的Django项目能够稳定运行。本教程面向新手,力求简单易懂。

1. Linux 服务器配置(CentOS/Ubuntu)

1.1 选择操作系统

  • CentOS:适合企业级应用,稳定性高。
  • Ubuntu:易用性强,社区支持好。

1.2 更新系统

更新包管理器以确保软件最新。

CentOS 7/8示例:

sudo yum update -y
sudo yum upgrade -y

Ubuntu 20.04/22.04示例:

sudo apt update
sudo apt upgrade -y

1.3 配置防火墙和安全

  • 启用防火墙:允许必要端口(如HTTP 80、HTTPS 443、SSH 22)。
    • CentOS:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload
    • Ubuntu:sudo ufw allow 22/tcp && sudo ufw enable
  • 创建非root用户:避免使用root账户以提高安全性。

2. Python 环境隔离与依赖安装

Django 6 需要Python 3.8或更高版本,推荐使用虚拟环境隔离项目依赖。

2.1 安装Python 3

如果系统中没有Python 3,先安装。

CentOS:

sudo yum install python3 python3-pip -y

Ubuntu:

sudo apt install python3 python3-pip python3-venv -y

2.2 创建虚拟环境

虚拟环境可以隔离项目依赖,避免冲突。

python3 -m venv myenv  # 创建名为myenv的虚拟环境
source myenv/bin/activate  # 激活虚拟环境(在Linux中)

激活后,命令行提示符会显示环境名称,如(myenv) user@server

2.3 安装Django 6和依赖

在虚拟环境中安装Django和其他包。

pip install --upgrade pip
pip install django==6.0  # 安装Django 6最新版本
pip install -r requirements.txt  # 如果有依赖文件,安装其他包

requirements.txt示例:

Django==6.0
mysqlclient==2.1.0  # 如果需要MySQL支持
psycopg2-binary==2.9.5  # 如果需要PostgreSQL支持
redis==4.5.4  # 用于缓存和Celery
celery==5.3.0  # 用于异步任务

3. 数据库部署(MySQL/PostgreSQL)与配置

Django 支持多种数据库,这里介绍MySQL和PostgreSQL。

3.1 MySQL部署

安装MySQL:

# CentOS
sudo yum install mysql-server mysql-devel -y
sudo systemctl start mysqld
sudo systemctl enable mysqld

# Ubuntu
sudo apt install mysql-server mysql-client -y
sudo systemctl start mysql
sudo systemctl enable mysql

配置数据库:

  1. 运行安全脚本:sudo mysql_secure_installation,设置root密码。
  2. 登录MySQL:sudo mysql -u root -p
  3. 创建Django数据库和用户:
CREATE DATABASE djangodb;
CREATE USER 'djangouser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON djangodb.* TO 'djangouser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Django设置:settings.py中配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'djangodb',
        'USER': 'djangouser',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

3.2 PostgreSQL部署

安装PostgreSQL:

# CentOS
sudo yum install postgresql-server postgresql-contrib -y
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Ubuntu
sudo apt install postgresql postgresql-contrib -y
sudo systemctl start postgresql
sudo systemctl enable postgresql

配置数据库:

  1. 切换到postgres用户:sudo -u postgres psql
  2. 创建Django数据库和用户:
CREATE DATABASE djangodb;
CREATE USER djangouser WITH PASSWORD 'password';
ALTER ROLE djangouser SET client_encoding TO 'utf8';
ALTER ROLE djangouser SET default_transaction_isolation TO 'read committed';
ALTER ROLE djangouser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE djangodb TO djangouser;
\q

Django设置:settings.py中配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'djangodb',
        'USER': 'djangouser',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

4. Redis部署(缓存、Celery消息代理)

Redis可以作为Django的缓存后端和Celery的消息代理。

4.1 安装Redis

# CentOS
sudo yum install redis -y
sudo systemctl start redis
sudo systemctl enable redis

# Ubuntu
sudo apt install redis-server -y
sudo systemctl start redis-server
sudo systemctl enable redis-server

4.2 配置Redis作为缓存

settings.py中添加缓存设置:

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',  # 使用数据库1
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

4.3 配置Redis作为Celery消息代理

Celery用于处理异步任务,如发送邮件。

安装Celery: 已在第2步安装。

配置Django项目:

  1. settings.py中添加:
CELERY_BROKER_URL = 'redis://localhost:6379/0'  # 使用数据库0作为消息代理
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
  1. 在项目根目录创建celery.py
import os
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
app = Celery('myproject')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
  1. __init__.py中导入:
from .celery import app as celery_app

__all__ = ('celery_app',)

4.4 测试部署

  1. 运行Django开发服务器测试:python manage.py runserver 0.0.0.0:8000(确保防火墙允许端口8000)。
  2. 创建超级用户:python manage.py createsuperuser
  3. 运行Celery worker:celery -A myproject worker --loglevel=info

总结

通过本教程,您已成功搭建了Django 6的部署环境,包括Linux服务器配置、Python环境隔离、数据库和Redis部署。记得在实际部署中,使用生产服务器如Nginx或Apache,并设置安全措施。后续可以学习部署到云服务或使用Docker容器化。

如有问题,请参考官方文档或社区论坛。祝您部署顺利!

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包