使用Django搭建web服务器的例子(最最正确的方式)

请看下面的攻略,其中包含两个示例说明。

使用Django搭建web服务器的例子(最最正确的方式)

示例1:创建一个Django项目

  1. 安装Django

bash
pip install Django

  1. 创建Django项目

bash
django-admin startproject myweb

这里创建了名为myweb的Django项目。

项目的目录结构如下:

myweb/
manage.py
myweb/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py

  1. 创建一个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

  1. 添加配置

打开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应用,以及一些默认的中间件。

  1. 编写视图函数

在myapp/views.py中添加以下代码:

```python
from django.http import HttpResponse

def index(request):
return HttpResponse("Hello, world. Welcome to my web.")
```

  1. 添加URL

打开myweb/urls.py,添加以下代码:

```python
from django.urls import path
from myapp.views import index

urlpatterns = [
path('', index),
]
```

这里添加了一个URL路由,将“/”映射到index视图。

  1. 测试运行

输入以下命令启动web服务器:

bash
python manage.py runserver

然后在浏览器中访问http://localhost:8000/,应该会看到“Hello, world. Welcome to my web.”。

示例2:使用Nginx+uWSGI+Django部署生产环境

  1. 安装必要软件

bash
sudo apt-get update
sudo apt-get install nginx python3 python3-pip python3-dev build-essential libssl-dev libffi-dev

  1. 安装uWSGI

bash
sudo pip3 install uwsgi

  1. 配置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个线程。

  1. 编写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文件上。

  1. 创建符号连接

将配置文件软链接到sites-enabled:

bash
sudo ln -s /etc/nginx/sites-available/myweb /etc/nginx/sites-enabled/

  1. 重启Nginx

bash
sudo systemctl restart nginx

  1. 启动uWSGI

在Django项目的根目录下启动uWSGI:

bash
uwsgi --ini uwsgi.ini

现在就可以访问http://example.com/来访问Django应用了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Django搭建web服务器的例子(最最正确的方式) - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django之路由层的实现

    下面我将为你详细讲解“Django之路由层的实现”的完整攻略。 一、Django路由层简介 Django的路由层是Django框架中的一个重要组成部分,主要负责请求的分发和处理。通过路由,Django能够将一个请求(包括请求的URL和参数)分发给不同的视图(Views)进行处理,并将处理结果返回给客户端。在Django中,路由的实现机制是基于URL模式和视图…

    Django 2023年5月16日
    00
  • django, django_restful 关于Authentication的学习总结

    一、关于配置 django: 配置为AUTHENTICATION_BACKENDS,setting.py不写的话,AUTHENTICATION_BACKENDS默认设置为(‘django.contrib.auth.backends.ModelBackend’,),           这是检测Django用户数据库的基本认证方案。按照 AUTHENTICAT…

    Django 2023年4月13日
    00
  • Django REST Framework 序列化和校验 知识点

      DRF序列化   Django ORM对象 –> JSON格式的数据  序列化   JSON格式的数据 –> Django ORM数据  反序列化   需要两个工具: from rest_framework.serializers import Serializer from rest_framework.serializers impo…

    Django 2023年4月13日
    00
  • django通过使用jwt模块实现状态保持

      第一步:安装jwt pip install djangorestframework-jwt   第二步:settings/dev的配置文件配置 REST_FRAMEWORK = { # 认证配置 ‘DEFAULT_AUTHENTICATION_CLASSES’: ( ‘rest_framework_jwt.authentication.JSONWebTo…

    2023年4月10日
    00
  • Django model数据 时间格式

    from datetime import datetime dt = datetime.now() print ‘时间:(%Y-%m-%d %H:%M:%S %f): ‘ , dt.strftime( ‘%Y-%m-%d %H:%M:%S %f’ ) print ‘时间:(%Y-%m-%d %H:%M:%S %p): ‘ , dt.strftime( ‘%y…

    Django 2023年4月9日
    00
  • django的form常用字段和参数

    Django 的内置字段 Field required=True#请求不能为空 widget=None#HTML插件 label=None#用于生成lable标签或显示内容 initial=None#初始值 help_text=”#帮助信息(在标签旁边显示) error_messages=None#(错误信息{‘required’:’不能为空’,‘inva…

    Django 2023年4月13日
    00
  • Django REST Framework教程:快速入门

    我们将创建一个简单的允许管理员用户查看和编辑系统中的用户和组的API。 项目设置 利用pycharm创建一个名为 tutorial 的新django项目,并创建一个名为 quickstart 的新app。   目录结构        在创建的虚拟环境中安装Django REST framework pip install djangorestframewor…

    Django 2023年4月13日
    00
  • django 操作前端数据

    django 利用json处理前端页面数据,FLASK当中也同样   def create_company(request):if request.user.is_superuser:custom_list = Custom.objects.all()compclass_list = Compclass.objects.all()custom_list = …

    Django 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部