Python 官方文档:入门教程 => 点击学习
这篇文章给大家分享的是有关怎么借助Django来编写一个python WEB api的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。DjanGo 所有 Web 框架中最全面的,也是最受欢迎的一个。自 2005 年以
这篇文章给大家分享的是有关怎么借助Django来编写一个python WEB api的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
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 模块:
$ pip3 install django$ pip3 install djangorestframework
现在你的应用程序已经有了一个工作环境,你必须实例化一个新的 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... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying sessions.0001_initial... OK
创建一个名为 admin
,示例密码为 passWord123
的初始用户:
$ python3 ../manage.py createsuperuser \ --email admin@example.com \ --username admin
在提示时创建密码。
为了使 Django 能够将信息传递给 HTTP GET 请求,必须将信息对象转化为有效的响应数据。Django 为此实现了“序列化类” serializers
。
在你的项目中,创建一个名为 quickstart/serializers.py
的新模块,使用它来定义一些序列化器,模块将用于数据展示:
from django.contrib.auth.models import User, Groupfrom rest_framework import serializers class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ['url', 'username', 'email', 'groups'] class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: 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, Groupfrom rest_framework import viewsetsfrom tutorial.quickstart.serializers import UserSerializer, GroupSerializer class UserViewSet(viewsets.ModelViewSet): """ API 允许查看或编辑用户 """ queryset = User.objects.all().order_by('-date_joined') serializer_class = UserSerializer class GroupViewSet(viewsets.ModelViewSet): """ API 允许查看或编辑组 """ queryset = Group.objects.all() serializer_class = GroupSerializer
现在,你可以生成 URL 以便人们可以访问你刚起步的 API。在文本编辑器中打开 urls.py
并将默认示例代码替换为以下代码:
from django.urls import include, pathfrom rest_framework import routersfrom tutorial.quickstart import views router = routers.DefaultRouter()router.reGISter(r'users', views.UserViewSet)router.register(r'groups', views.GroupViewSet) # 使用自动路由 URL# 还有登录 URLurlpatterns = [ path('', include(router.urls)), path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))]
这个示例项目的设置模块存储在 tutorial/settings.py
中,因此在文本编辑器中将其打开,然后在 INSTALLED_APPS
列表的末尾添加 rest_framework
:
INSTALLED_APPS = [ ... 'rest_framework',]
现在,你可以测试构建的 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 文档。
Django 的主要优点:
Django 社区的规模正在不断扩大,因此即使你做一个复杂项目,也会有大量的指导资源。
默认包含模板、路由、表单、身份验证和管理工具等功能,你不必寻找外部工具,也不必担心第三方工具会引入兼容性问题。
用户、循环和条件的简单结构使你可以专注于编写代码。
这是一个成熟且经过优化的框架,它非常快速且可靠。
Django 的主要缺点:
Django 很复杂!从开发人员视角的角度来看,它可能比简单的框架更难学。
Django 有一个很大的生态系统。一旦你熟悉它,这会很棒,但是当你深入学习时,它可能会令人感到无所适从。
感谢各位的阅读!关于“怎么借助Django来编写一个Python Web API”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
--结束END--
本文标题: 怎么借助Django来编写一个Python Web API
本文链接: https://www.lsjlt.com/news/284270.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0