环境准备
-
更新系统
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu sudo dnf update -y # Fedora/CentOS
-
安装Python
Django基于Python运行,推荐Python 3.8+:sudo apt install python3 python3-pip python3-venv -y
-
创建虚拟环境(隔离依赖)
python3 -m venv myenv # 创建虚拟环境目录 source myenv/bin/activate # 激活环境(提示符会变化)
安装与配置Django
-
安装Django
在激活的虚拟环境中执行:pip install django
-
创建Django项目
django-admin startproject myproject # 生成项目目录 cd myproject
-
配置数据库(默认SQLite无需额外安装)
如需MySQL/PostgreSQL,需安装对应驱动:pip install mysqlclient # MySQL pip install psycopg2-binary # PostgreSQL
修改
myproject/settings.py
中的DATABASES
配置。
运行开发服务器
-
启动服务
python manage.py runserver 0.0.0.0:8000
0.0.0
允许外部设备访问- 默认端口8000(可用
:8080
修改)
-
验证运行
浏览器访问:http://<服务器IP>:8000
出现 “The install worked successfully!” 即成功。
生产环境部署建议
开发服务器仅用于测试,生产环境需使用:
- WSGI服务器:Gunicorn或uWSGI
pip install gunicorn gunicorn myproject.wsgi:application --bind 0.0.0.0:8000
- 反向代理:Nginx/Apache
Nginx配置示例:server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; } }
- 静态文件处理:
在settings.py
中设置:STATIC_ROOT = BASE_DIR / "static"
执行:
python manage.py collectstatic
故障排查
- 端口冲突:
使用lsof -i:8000
查找占用进程,kill <PID>
终止或换端口。 - 访问被拒绝:
检查防火墙:sudo ufw allow 8000 # 开放端口
- 依赖缺失:
通过pip freeze > requirements.txt
备份依赖,部署时用pip install -r requirements.txt
恢复。
安全提示
- 生产环境务必设置
DEBUG = False
- 生成密钥:
python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
- 定期更新依赖:
pip list --outdated
扩展学习
- 官方文档:Django Deployment Checklist
- 虚拟环境管理:Python venv指南
- 服务器配置:DigitalOcean Django教程
引用说明参考Django官方文档、Linux基金会安全指南及Python社区最佳实践,适用于Ubuntu 20.04+、CentOS 7+等主流发行版,操作前请备份数据,关键操作建议在测试环境验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5522.html