在这篇文章中,我将手把手地教你如何从零开始部署一个应用Django框架的Python服务。无论你是一个刚开始接触开发的老手,还是一个有教训的开发者想要疾速理解Django,这篇教程都会为你提供一条清晰的门路。咱们将从环境搭建开始,一步一步地创立一个能够解决GET和POST申请的服务,让你能在实践中了解Django的工作原理。

环境搭建(按需)

首先,咱们须要创立一个适宜开发的环境。在Python开发中,咱们通常会应用虚拟环境来放弃工作空间的整洁。以下是创立和激活虚拟环境的步骤:

# 创立虚拟环境python3 -m venv myenv# 激活虚拟环境(Linux/macOS)source myenv/bin/activate# 激活虚拟环境(Windows).\myenv\Scripts\activate

在虚拟环境中,咱们能够装置Django:

pip install Django

这将会装置Django并且保障它不会影响到零碎中的其余Python我的项目。

创立我的项目

装置实现后,咱们能够应用Django的命令行工具来创立一个新的我的项目:

django-admin startproject myproject

这将会在当前目录下创立一个名为myproject的文件夹,其中蕴含了治理Django我的项目所需的一些文件。

创立利用

在Django中,一个我的项目能够蕴含多个利用,每个利用都是一个Python模块,蕴含了视图、模型、模板、路由等一系列性能。咱们首先创立一个名为myapp的利用:

cd myprojectpython manage.py startapp myapp

这会在myproject目录下创立一个myapp的目录,蕴含了治理利用所需的一些文件。

定义视图

接下来,咱们须要定义视图来解决HTTP申请。在myapp/views.py文件中,咱们能够定义一个视图来解决GET和POST申请:

from django.http import JsonResponsefrom django.views.decorators.csrf import csrf_exempt@csrf_exemptdef hello(request):    if request.method == 'GET':        return JsonResponse({'message': 'Hello, Django!'})    elif request.method == 'POST':        return JsonResponse({'message': 'POST request received.'})

这里,咱们应用了JsonResponse来返回JSON响应,用@csrf_exempt来豁免CSRF爱护,以便于咱们在测试时能不便地发送POST申请。

配置路由

视图定义实现后,咱们还须要配置路由来将URL映射到视图。在myapp/urls.py

文件中,咱们能够定义路由:

from django.urls import pathfrom . import viewsurlpatterns = [    path('hello/', views.hello),]

而后,在myproject/urls.py文件中,咱们须要蕴含myapp的路由:

from django.urls import include, pathurlpatterns = [    path('myapp/', include('myapp.urls')),]

这样,拜访/myapp/hello/URL时,就会调用咱们定义的hello视图。

启动服务

最初,咱们能够启动Django服务来测试咱们的利用:

python manage.py runserver

当初,你能够应用浏览器拜访http://localhost:8000/myapp/hello/,你将看到返回的{"message": "Hello, Django!"}。你也能够应用工具(如curl或Postman)发送POST申请,你将看到返回的{"message": "POST request received."}

祝贺你!你曾经胜利地从零开始部署了一个应用Django框架的Python服务。

我的项目文件夹和代码一览

最初提供给大家,在咱们的Django我的项目中,咱们会看到以下文件构造:

myproject/├── manage.py├── myapp/│   ├── __init__.py│   ├── admin.py│   ├── apps.py│   ├── migrations/│   ├── models.py│   ├── tests.py│   ├── urls.py│   └── views.py└── myproject/    ├── __init__.py    ├── asgi.py    ├── settings.py    ├── urls.py    └── wsgi.py

在这个构造中,咱们次要关注的是myapp/views.pymyapp/urls.py,和myproject/urls.py这三个文件,因为这三个文件是咱们在部署Django服务中批改的次要文件。

myapp/views.py

myapp/views.py文件中,咱们定义了一个hello视图来解决GET和POST申请。残缺的代码如下:

from django.http import JsonResponsefrom django.views.decorators.csrf import csrf_exempt@csrf_exemptdef hello(request):    if request.method == 'GET':        return JsonResponse({'message': 'Hello, Django!'})    elif request.method == 'POST':        return JsonResponse({'message': 'POST request received.'})

myapp/urls.py

myapp/urls.py文件中,咱们定义了一个路由来将/hello/的URL映射到hello视图。如果文件不存在,请创立并增加以下内容:

from django.urls import pathfrom . import viewsurlpatterns = [    path('hello/', views.hello),]

myproject/urls.py

myproject/urls.py文件中,咱们蕴含了myapp的路由,将所有以/myapp/结尾的URL映射到myapp的路由。残缺的代码如下:

from django.urls import include, pathurlpatterns = [    path('myapp/', include('myapp.urls')),]

以上便是咱们创立的Django服务的全副代码和文件构造。

如有帮忙,请多关注
集体微信公众号:【Python全视角】
TeahLead_KrisChang,10+年的互联网和人工智能从业教训,10年+技术和业务团队治理教训,同济软件工程本科,复旦工程治理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人。