在这篇文章中,我将手把手地教你如何从零开始部署一个使用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.py,myapp/urls.py,和myproject/urls.py这三个文件,因为这三个文件是我们在部署Django服务中修改的主要文件。
在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产品业务负责人。






