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