python3.7(如何借助 Django 来编写一个 Python Web API)python初学 / python在API设计与开发中的应用...

wufei123 发布于 2024-05-28 阅读(14)

Django 是 Python API 开发中最流行的框架之一,在这个教程中,我们来学习如何使用它-- Rachel Waston(作者)Django 所有 Web 框架中最全面的,也是最受欢迎的一个自 2005 年以来,其流行度大幅上升。

Django 是由 Django 软件基金会维护,并且获得了社区的大力支持,在全球拥有超过 11,600 名成员在 Stack Overflow 上,约有 191,000 个带 Django 标签的问题。

Spotify、YouTube 和 Instagram 等都使用 Django 来构建应用程序和数据管理本文演示了一个简单的 API,通过它可以使用 HTTP 协议的 GET 方法来从服务器获取数据构建一个项目

首先,为你的 Django 应用程序创建一个目录结构,你可以在系统的任何位置创建:$ mkdir myproject$cd myproject然后,在项目目录中创建一个虚拟环境来隔离本地包依赖关系:$ python3 -m venv env

$source env/bin/activate在 Windows 上,使用命令 env\Scripts\activate 来激活虚拟环境安装 Django 和 Django REST framework。

然后,安装 Django 和 Django REST 模块:$ pip3 install django $ pip3 install djangorestframework实例化一个新的 Django 项目

现在你的应用程序已经有了一个工作环境,你必须实例化一个新的 Django 项目与 Flask 这样微框架不同的是,Django 有专门的命令来创建(注意第一条命令后的 . 字符)$ django-admin startproject tutorial .。

$cd tutorial$ django-admin startapp quickstartDjango 使用数据库来管理后端,所以你应该在开始开发之前同步数据库,数据库可以通过 manage.py 脚本管理,它是在你运行 django-admin 命令时创建的。

因为你现在在 tutorial 目录,所以使用 ../ 符号来运行脚本,它位于上一层目录:$python3../manage.pymakemigrationsNochangesdetected$python4

../manage.pymigrateOperations to perform:Apply all migrations:admin,auth,contenttypes,sessionsRunning migrations:

Applyingcontenttypes.0001_initial...OKApplyingauth.0001_initial...OKApplyingadmin.0001_initial...OKApplying

admin.0002_logentry_remove_auto_add...OKApplyingadmin.0003_logentry_add_action_flag_choices...OKApplying

contenttypes.0002_remove_content_type_name...OKApplyingauth.0002_alter_permission_name_max_length...OK

Applyingauth.0003_alter_user_email_max_length...OKApplyingauth.0004_alter_user_username_opts...OKApplying

auth.0005_alter_user_last_login_null...OKApplyingauth.0006_require_contenttypes_0002...OKApplyingauth.0007_alter_validators_add_error_messages...

OKApplyingauth.0008_alter_user_username_max_length...OKApplyingauth.0009_alter_user_last_name_max_length...

OKApplyingauth.0010_alter_group_name_max_length...OKApplyingauth.0011_update_proxy_permissions...OKApplying

sessions.0001_initial...OK在 Django 中创建用户创建一个名为 admin,示例密码为 password123 的初始用户:$ python3 ../manage.py createsuperuser \   

--email admin@example.com \--username admin在提示时创建密码在 Django 中实现序列化和视图为了使 Django 能够将信息传递给 HTTP GET 请求,必须将信息对象转化为有效的响应数据。

Django 为此实现了“序列化类” serializers在你的项目中,创建一个名为 quickstart/serializers.py 的新模块,使用它来定义一些序列化器,模块将用于数据展示:from

django.contrib.auth.models import User, Group from rest_framework import serializers classUserSerializer

(serializers.HyperlinkedModelSerializer):classMeta:         model = User         fields = [url, username

, email, groups] classGroupSerializer(serializers.HyperlinkedModelSerializer):classMeta:         model = Group         fields = [

url, name]Django 中的 视图 是一个接受 Web 请求并返回 Web 响应的函数响应可以是 HTML、HTTP 重定向、HTTP 错误、JSON 或 XML 文档、图像或 TAR 文件,或者可以是从 Internet 获得的任何其他内容。

要创建视图,打开 quickstart/views.py 并输入以下代码该文件已经存在,并且其中包含一些示例文本,保留这些文本并将以下代码添加到文件中:from django.contrib.auth.models

import User, Group from rest_framework import viewsets from tutorial.quickstart.serializers import UserSerializer, GroupSerializer

classUserViewSet(viewsets.ModelViewSet):"""     API 允许查看或编辑用户     """     queryset = User.objects.all().order_by(

-date_joined)     serializer_class = UserSerializer classGroupViewSet(viewsets.ModelViewSet):"""     API 允许查看或编辑组     """

    queryset = Group.objects.all()     serializer_class = GroupSerializer使用 Django 生成 URL现在,你可以生成 URL 以便人们可以访问你刚起步的 API。

在文本编辑器中打开 urls.py 并将默认示例代码替换为以下代码:from django.urls import include, path from rest_framework import routers

from tutorial.quickstart import views router = routers.DefaultRouter() router.register(rusers, views.UserViewSet) router.register(

rgroups, views.GroupViewSet) # 使用自动路由 URL# 还有登录 URL urlpatterns = [     path(, include(router.urls)),     path(

api-auth/, include(rest_framework.urls, namespace=rest_framework)) ]调整你的 Django 项目设置这个示例项目的设置模块存储在 tutorial/settings.py 中,因此在文本编辑器中将其打开,然后在 INSTALLED_APPS 列表的末尾添加 rest_framework:

INSTALLED_APPS = [     ...     rest_framework, ]测试 Django API现在,你可以测试构建的 API首先,从命令行启动内置服务器:$ python3 manage.py runserver。

你可以通过使用 curl 导航至 URL http://localhost:8000/users 来访问 API:$ curl --get http://localhost:8000/users/?format=json

[{"url":"http://localhost:8000/users/1/?format=json","username":"admin","email":"admin@example.com",

"groups":[]}]使用 Firefox 或你选择的 开源浏览器 :

一个简单的 Django API有关使用 Django 和 Python 的 RESTful API 的更多深入知识,参考出色的 Django 文档 为什么要使用 Djago?Django 的主要优点:。

Django 社区的规模正在不断扩大,因此即使你做一个复杂项目,也会有大量的指导资源默认包含模板、路由、表单、身份验证和管理工具等功能,你不必寻找外部工具,也不必担心第三方工具会引入兼容性问题用户、循环和条件的简单结构使你可以专注于编写代码。

这是一个成熟且经过优化的框架,它非常快速且可靠Django 的主要缺点:Django 很复杂!从开发人员视角的角度来看,它可能比简单的框架更难学Django 有一个很大的生态系统一旦你熟悉它,这会很棒,但是当你深入学习时,它可能会令人感到无所适从。

对你的应用程序或 API 来说,Django 是绝佳选择下载并熟悉它,开始开发一个迷人的项目!via: https://opensource.com/article/19/11/python-web-api-django。

作者: Rachel Waston 选题: lujun9972 译者: MjSeven 校对: wxy本文由 LCTT 原创编译, Linux中国 荣誉推出点击“了解更多”可访问文内链接

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻54048