关于python:Python-Django-零基础从零到一部署服务Hello-Django全文件夹目录和核心代码

44次阅读

共计 2857 个字符,预计需要花费 8 分钟才能阅读完成。

在这篇文章中,我将手把手地教你如何从零开始部署一个应用 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 myproject
python manage.py startapp myapp

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

定义视图

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

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def 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 path

from . import views

urlpatterns = [path('hello/', views.hello),
]

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

from django.urls import include, path

urlpatterns = [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 JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def 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 path

from . import views

urlpatterns = [path('hello/', views.hello),
]

myproject/urls.py

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

from django.urls import include, path

urlpatterns = [path('myapp/', include('myapp.urls')),
]

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

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

正文完
 0