- $
apt update
安装软件之前的通用操作 - $
python3 -V
检查是否安装python3 - $
pip3 -V
检查是否安装pip3 - $
apt install python3
如果没有,则执行安装 - $
apt install python3-pip
如果没有,则执行安装 - $
pip3 install django
安装django框架
1 ) 创建项目
django-admin startproject demo
cd demo/
ls
demo manage.py
cd demo
__init__.py settings.py urls.py wsgi.py
2 ) 编辑urls.py
from django.http import HttpResponse # 导入response
# 修改路由配置, 注意高版本的路由写法可能不一样, 此处只做举例
urlpatterns = [
path('', lambda request: HttpResponse("Hello World")),
]
3 ) 测试运行程序
- $
python3 manage.py runserver
服务器运行起来了
4 ) 支持远程访问
- 将刚才测试的服务结束掉
- 编辑配置文件 $
vi demo/settings.py
文件- 开启:
ALLOWED_HOSTS = ['*']
- 开启:
- 重新运行服务器:$
python3 manage.py runserver 0.0.0.0:8080
- 在其他电脑上通过ip地址访问:
服务器ip:8080
Hello World 即可正常响应
5 ) 注意
- django自带的server只能用于开发环境,性能较差
- 生产环境推荐uWSGI软件
- uWSGI 是c语言写的专业的web服务器,性能强悍
- 安装uWSGI, $
pip3 install uwsgi
- 启动调试uWSGI, $
uwsgi --http :9090 --chdir /root/demo --module demo.wsgi
- 这种方式用于调试
--http
: 表示 表示要开启一个http的服务, 指定的访问地址(端口), 默认没有ip表示本服务器--chdir
: 表示 指定项目的目录--module
: 表示 指定运行的模块
- 后台运行服务并开启日志的方法: $
uwsgi --http :9090 --chdir /root/demo --module demo.wsgi --daemonize /var/log/uwsgi.log
--daemonize
: 表示以服务的方式运行,不会占用终端, 并设置日志文件- 这是部署项目最终运行的方式
- 如果需要结束该进程,那么:$
ps -ef | grep uwsgi
查找到该进程的父进程ID, 即:PPID- $
kill -9 父进程ID号
- $
- 将运行命令写到开机脚本中:
- 为了避免每次开机都要手动启动该服务
- $
vi /etc/rc.local
- 将
uwsgi --http :9090 --chdir /root/demo --module demo.wsgi --daemonize /var/log/uwsgi.log
命令复制粘贴到最后(exit 0
的上面)
- 优化开机脚本:
- 查看uwsgi的完整路径: $
which uwsgi
输出一般默认是:/usr/local/bin/uwsgi
- 优化脚本:
/usr/local/bin/uwsgi --http :9090 --chdir /root/demo --module demo.wsgi --daemonize /var/log/uwsgi.log
- 推荐写完整路径
- 查看uwsgi的完整路径: $
- 上述对uwsgi服务的开机配置并不太友好, 参数较多的时候会很麻烦, 考虑到后期可能会有很多服务, 为了后期管理方便,建议将每项服务的参数配置到一个独立的文件中
- 以uwsgi为例:
- 为uwsgi创建配置文件, $
vi /data/uwsgi.ini
[uwsgi] http=:9090 chdir=/root/demo module=demo.wsgi daemonize=/var/log/uwsgi.log
- 重写关于uwsgi的开机脚本:$
vi /etc/rc.local
- 修改为:
/usr/local/bin/uwsgi --ini /data/uwsgi.ini
- 修改为:
- 如果需要重启uwsgi:
- 结束服务:$
pkill uwsgi
- 重启服务:$
uwsgi --ini /data/uwsgi.ini
- 结束服务:$
- 为uwsgi创建配置文件, $