1. 安装uWSGI
# 直接使用pip安装
pip install uwsgi
# 查看版本
uwsgi --version
# 2.0.19.1
2. 验证uWSGI
新建文件test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]
执行启动中间件命令
uwsgi --http :8000 --wsgi-file test.py
打开浏览器访问http://localhost:8000,如果返回Hello World代表uwsgi安装和配置没有问题了。
配置外网访问: 如果需要在主机上访问虚拟机部署的项目需要绑定特定IP。
uwsgi --http 192.168.133.130:8000 --wsgi-file test.py
3. uwsgi 部署 Django
如果项目时采用前后端分离架构,那么在配置时使用–http-socket参数。
uwsgi --http :8000 --file mysite/mysite/wsgi.py
可能出现的问题: 1. 找不到模块
ModuleNotFoundError: No module named 'mysite.settings'
解决方案:是在设置环境变量前项目添加至系统目录。打开项目wsgi.py文件,添加如下代码:
import sys
path = '/home/path/to/project'
if path not in sys.path:
sys.path.append(path)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
更通用的设置方法。
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if BASE_DIR not in sys.path:
sys.path.append(BASE_DIR)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
可能出现的问题: 2. sqlite有误
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required(found 3.7.17).
django需要使用sqlite 3.8.3版本,实际操作系统带的版本为3.7.17。解决方法是升级操作系统的sqlite版本,方法参考 https://blog.csdn.net/qq_39969226/article/details/92218635