请看下面的攻略,其中包含两个示例说明。
使用Django搭建web服务器的例子(最最正确的方式)
示例1:创建一个Django项目
- 安装Django
bash
pip install Django
- 创建Django项目
bash
django-admin startproject myweb
这里创建了名为myweb的Django项目。
项目的目录结构如下:
myweb/
manage.py
myweb/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
- 创建一个Django应用
bash
cd myweb/
python manage.py startapp myapp
这里创建了名为myapp的应用。
项目的目录结构变成了下面这样:
myweb/
manage.py
myapp/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
myweb/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
- 添加配置
打开myweb/settings.py,添加以下配置:
```python
INSTALLED_APPS = [
'myapp',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
TIME_ZONE = 'Asia/Shanghai'
```
这里添加了myapp应用,以及一些默认的中间件。
- 编写视图函数
在myapp/views.py中添加以下代码:
```python
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. Welcome to my web.")
```
- 添加URL
打开myweb/urls.py,添加以下代码:
```python
from django.urls import path
from myapp.views import index
urlpatterns = [
path('', index),
]
```
这里添加了一个URL路由,将“/”映射到index视图。
- 测试运行
输入以下命令启动web服务器:
bash
python manage.py runserver
然后在浏览器中访问http://localhost:8000/,应该会看到“Hello, world. Welcome to my web.”。
示例2:使用Nginx+uWSGI+Django部署生产环境
- 安装必要软件
bash
sudo apt-get update
sudo apt-get install nginx python3 python3-pip python3-dev build-essential libssl-dev libffi-dev
- 安装uWSGI
bash
sudo pip3 install uwsgi
- 配置uWSGI
在Django项目的根目录下创建uwsgi.ini文件,添加以下配置:
ini
[uwsgi]
socket = /tmp/myweb.sock
chdir = /path/to/myweb/project
wsgi-file = /path/to/myweb/project/myweb/wsgi.py
process = 4
threads = 2
master = true
pidfile = /tmp/myweb.pid
vacuum = true
这里配置了uWSGI监听在/tmp/myweb.sock上,项目的根目录为/path/to/myweb/project,使用wsgi.py作为入口,启动4个worker进程,每个进程使用2个线程。
- 编写Nginx配置
创建/etc/nginx/sites-available/myweb文件,添加以下内容:
```nginx
server {
listen 80;
server_name example.com;
location / {
uwsgi_pass unix:///tmp/myweb.sock;
include uwsgi_params;
}
}
```
这里配置了Nginx监听在80端口,将请求发送到uWSGI监听的sock文件上。
- 创建符号连接
将配置文件软链接到sites-enabled:
bash
sudo ln -s /etc/nginx/sites-available/myweb /etc/nginx/sites-enabled/
- 重启Nginx
bash
sudo systemctl restart nginx
- 启动uWSGI
在Django项目的根目录下启动uWSGI:
bash
uwsgi --ini uwsgi.ini
现在就可以访问http://example.com/来访问Django应用了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Django搭建web服务器的例子(最最正确的方式) - Python技术站