iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么借助Django来编写一个Python Web API
  • 396
分享到

怎么借助Django来编写一个Python Web API

2023-06-16 15:06:44 396人浏览 八月长安

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 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... 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

在 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 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

使用 Django 生成 URL

现在,你可以生成 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'))]

调整你的 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来编写一个Python Web API

一个简单的 Django API

有关使用 Django 和 Python 的 RESTful API 的更多深入知识,参考出色的 Django 文档。

为什么要使用 Djago?

Django 的主要优点:

  1. Django 社区的规模正在不断扩大,因此即使你做一个复杂项目,也会有大量的指导资源。

  2. 默认包含模板、路由、表单、身份验证和管理工具等功能,你不必寻找外部工具,也不必担心第三方工具会引入兼容性问题。

  3. 用户、循环和条件的简单结构使你可以专注于编写代码。

  4. 这是一个成熟且经过优化的框架,它非常快速且可靠。

Django 的主要缺点:

  1. Django 很复杂!从开发人员视角的角度来看,它可能比简单的框架更难学。

  2. Django 有一个很大的生态系统。一旦你熟悉它,这会很棒,但是当你深入学习时,它可能会令人感到无所适从。

感谢各位的阅读!关于“怎么借助Django来编写一个Python Web API”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 怎么借助Django来编写一个Python Web API

本文链接: https://www.lsjlt.com/news/284270.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么借助Django来编写一个Python Web API
    这篇文章给大家分享的是有关怎么借助Django来编写一个Python Web API的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Django 所有 Web 框架中最全面的,也是最受欢迎的一个。自 2005 年以...
    99+
    2023-06-16
  • 怎么使用Flask编写Python Web API
    这篇文章主要介绍了怎么使用Flask编写Python Web API,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python 是一个以语法简洁著称的高级的、面向对象的程序语...
    99+
    2023-06-16
  • 怎么使用Pyramid和Cornice编写Python Web API
    本篇内容主要讲解“怎么使用Pyramid和Cornice编写Python Web API”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Pyramid和Cornice编写Python We...
    99+
    2023-06-16
  • 使用Django怎么编写一个应用视图
    这篇文章给大家介绍使用Django怎么编写一个应用视图,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。项目中创建应用首先切换到项目目录中其次输入命令:python manage.py s...
    99+
    2024-04-02
  • 如何用Python编写一个私人助理程序
    今天就跟大家聊聊有关如何用Python编写一个私人助理程序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在你的工作中是否有一些你自己经常做重复的任务这就是编程的乐趣所在。通过一些思考...
    99+
    2023-06-16
  • Python编写一个程序来计算 BMI 值。
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、BMI是什么?二、使用步骤 1.简单代码2.结果总结 前言 Python编写一个程序来计算 BMI 值: 一、BMI是什么? 小...
    99+
    2023-10-02
    python iot linux 全文检索
  • python怎么编写api接口
    在Python中编写API接口需要使用Web框架来处理HTTP请求和响应。以下是使用Flask框架编写API接口的示例:```pyt...
    99+
    2023-08-25
    python
  • Python+Flask编写一个简单的行人检测API
    目录前提条件实验环境项目结构主要代码运行结果前提条件 1.了解Python语言,并会安装第三方库 2.了解Python Web Flask框架 3.了解PyTorch深度学习框架 实...
    99+
    2024-04-02
  • 使用django怎么编写一个单元测试功能
    本篇文章给大家分享的是有关使用django怎么编写一个单元测试功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、使用requests模拟Http请求   假设你执行成功的返...
    99+
    2023-06-14
  • 怎么用Python编写一个拼写纠错器
    这篇文章主要介绍“怎么用Python编写一个拼写纠错器”,在日常操作中,相信很多人在怎么用Python编写一个拼写纠错器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python编写一个拼写纠错器”的疑...
    99+
    2023-06-04
  • 怎么用Python编写一个装饰器
    本篇内容主要讲解“怎么用Python编写一个装饰器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python编写一个装饰器”吧!首先概念,装饰器是闭包的一种应用,需要满足一下规则:在不更改...
    99+
    2023-06-02
  • python怎么编写一个求和函数
    你可以用以下代码编写一个求和函数: def sum_numbers(numbers): total = 0 for ...
    99+
    2023-10-24
    python
  • Python中怎么编写辅助模块module
    这篇文章给大家分享的是有关Python中怎么编写辅助模块module的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;...
    99+
    2023-06-14
  • 怎么用python编写一个冒泡函数
    以下是一个用Python编写的冒泡排序函数:```pythondef bubble_sort(arr):n = len(arr)# ...
    99+
    2023-09-20
    python
  • 基于Python怎么编写一个点名器
    这篇文章主要介绍“基于Python怎么编写一个点名器”,在日常操作中,相信很多人在基于Python怎么编写一个点名器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Python怎么编写一个点名器”的疑惑有所...
    99+
    2023-07-02
  • 从零开始编写一个上位机(串口助手)QT Creator + Python
    提示:本博客作为学习笔记,有错误的地方希望指正,此文可能会比较长,作为学习笔记的积累,希望对来着有帮助。   绪论:笔者这里使用的是QTCreator和Python来实现一个简单的串口上位机的开发的简...
    99+
    2023-09-22
    python qt 开发语言
  • 怎么用Python编写一个简单的游戏
    本篇内容介绍了“怎么用Python编写一个简单的游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在这个系列中,我们要用不同的编程语言编写相...
    99+
    2023-06-15
  • 怎么用Python编写一个进程勾选器
    要编写一个进程勾选器(也就是监视和选择进程)的Python程序,可以使用psutil库来获取系统当前运行的进程信息,并使用tkint...
    99+
    2024-03-05
    Python
  • 怎么用C写一个web服务器之GCC项目编译
    这篇文章给大家分享的是有关怎么用C写一个web服务器之GCC项目编译的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言本想着接下来大概实现一下 CGI 协议,但是实现过程中被一个问题卡住了:C进程与php进程的交...
    99+
    2023-06-15
  • Python API、Django 和大数据:这些技术如何帮助您构建下一代 Web 应用程序?
    Web 应用程序的需求一直在不断发展。如今,用户要求更快的响应时间、更好的安全性和更丰富的功能。Python API、Django 和大数据技术是构建下一代 Web 应用程序的关键技术。本文将介绍这些技术如何帮助您构建下一代 Web 应用...
    99+
    2023-06-16
    api 大数据 django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作