按关键词阅读:
文章插图
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 quickstart
Django 使用数据库来管理后端 , 所以你应该在开始开发之前同步数据库 , 数据库可以通过 manage.py 脚本管理 , 它是在你运行 django-admin 命令时创建的 。 因为你现在在 tutorial 目录 , 所以使用 ../ 符号来运行脚本 , 它位于上一层目录:
$ python3 ../manage.py makemigrationsNo changes detected$ python4 ../manage.py migrateOperations to perform:Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.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, Groupfrom rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):class Meta:model = Userfields = ['url', 'username', 'email', 'groups']class GroupSerializer(serializers.HyperlinkedModelSerializer):class Meta:model = Groupfields = ['url', 'name']
Django 中的 视图 是一个接受 Web 请求并返回 Web 响应的函数 。 响应可以是 HTML、HTTP 重定向、HTTP 错误、JSON 或 XML 文档、图像或 TAR 文件 , 或者可以是从 Internet 获得的任何其他内容 。 要创建视图 , 打开 quickstart/views.py 并输入以下代码 。 该文件已经存在 , 并且其中包含一些示例文本 , 保留这些文本并将以下代码添加到文件中:
from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom tutorial.quickstart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet):"""API 允许查看或编辑用户"""queryset = User.objects.all().order_by('-date_joined')serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet):"""API 允许查看或编辑组"""queryset = Group.objects.all()serializer_class = GroupSerializer
使用 Django 生成 URL现在 , 你可以生成 URL 以便人们可以访问你刚起步的 API 。 在文本编辑器中打开 urls.py 并将默认示例代码替换为以下代码:
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J2b352020.html
标题:如何借助 Django 来编写一个 Python Web API