当前播报:Python Django 零基础从零到一部署服务,Hello Django!全文件夹目录和核心代码!

2023-07-04 11:28:39

在这篇文章中,我将手把手地教你如何从零开始部署一个使用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产品业务负责人。

关键词: