精华内容
下载资源
问答
  • python 开发apiIf you have read some of my previous Python articles, you know I’m a Flask fan. It is my go-to for building APIs in Python. However, recently I started to hear a lot about a new API ...

    python 开发api

    If you have read some of my previous Python articles, you know I’m a Flask fan. It is my go-to for building APIs in Python. However, recently I started to hear a lot about a new API framework for Python called FastAPI. After building some APIs with it, I can say it is amazing!

    如果您阅读过我以前的一些Python文章,您就会知道我是Flask的粉丝。 这是我用Python构建API的必修课。 但是,最近我开始听到很多关于Python的新API框架FastAPI的信息 。 用它构建了一些API之后,我可以说它很棒!

    This project was created by Sebastian Ramírez, and at the time of writing, it has accumulated almost 20K stars. Big names like Microsoft, Uber, Netflix, and others have been building APIs with it.

    这个项目是由塞巴斯蒂安·拉米雷斯 ( SebastianRamírez)创建的,在撰写本文时,它已经积累了近2万颗星。 像Microsoft,Uber,Netflix等大公司都在使用它来构建API。

    But why is this new library so popular and how does it compare to Flask or Django?

    但是,为什么这个新库如此受欢迎?与FlaskDjango相比,它又如何呢?

    特征 (Features)

    FastAPI is a rather minimalistic framework. However, that doesn’t make it less powerful. FastAPI is built using modern Python concepts and is based on Python 3.6 type declarations. Let’s see some of the features this library is packed with.

    FastAPI是一个相当简单的框架。 但是,这并不会使它的功能降低。 FastAPI是使用现代Python概念构建的,并且基于Python 3.6类型声明。 让我们看一下该库附带的一些功能。

    自动文档 (Automatic docs)

    A must-have for any API is documentation about the endpoints and types. A common approach to solve this problem is the use of OpenAPI and tools like Swagger UI or ReDoc to present the information. These come packed automatically with FastAPI, allowing you to focus more on your code than setting up tools.

    任何API的必备组件都是有关端点和类型的文档。 解决此问题的常用方法是使用OpenAPI和诸如Swagger UIReDoc之类的工具来显示信息。 这些都与FastAPI自动打包在一起,使您可以比设置工具更专注于代码。

    键入Python (Typed Python)

    This is a big one: FastAPI makes use of Python 3.6 type declarations (thanks to Pydantic). This means that it uses a Python feature that allows you to specify the type of a variable. And this framework makes extensive use out of it, providing you with great editor support. Autocompletion works amazingly well.

    这是一个很大的问题:FastAPI使用Python 3.6类型声明(感谢Pydantic)。 这意味着它使用Python功能,可让您指定变量的类型。 并且该框架对其进行了广泛使用,为您提供了强大的编辑器支持。 自动补全效果非常好。

    Here is some sample code using typed declarations:

    这是一些使用类型声明的示例代码:

    We just went from:

    我们刚从:

    name

    to:

    至:

    name: str

    That’s it! And as a result:

    而已! 结果是:

    Image for post
    Autocompletion in FastAPI using PyCharm
    使用PyCharm在FastAPI中自动完成

    Beautiful!

    美丽!

    验证方式 (Validation)

    Validation is already integrated into this framework thanks to Pydantic. You can validate standard Python types as well as some custom field validations. Here are a few examples:

    由于Pydantic,验证已集成到此框架中。 您可以验证标准Python类型以及一些自定义字段验证。 这里有一些例子:

    • JSON objects (dict)

      JSON对象( dict )

    • JSON array (list)

      JSON数组( list )

    • String (str) with min and max lengths

      最小长度和最大长度的字符串( str )

    • Numbers (int, float) with min and max values

      带有最小值和最大值的数字( intfloat )

    • URL

      网址
    • Email

      电子邮件
    • UUID

      UUID
    • And many more…

      还有很多…

    安全与认证 (Security and authentication)

    This is a crucial part of any API and it’s code that we usually just repeat, so why not integrate much of it into the framework? FastAPI does exactly that.

    这是任何API的关键部分,我们通常只重复其中的代码,那么为什么不将其大量集成到框架中呢? FastAPI正是这样做的。

    The library provides support for the following:

    该库提供以下支持:

    • HTTP Basic

      HTTP基本
    • OAuth2 (JWT tokens)

      OAuth2(JWT令牌)
    • API keys in headers, query params, or cookies.

      标头,查询参数或cookie中的API密钥。

    文献资料 (Documentation)

    This is perhaps not exactly a feature of the framework, but it is worth mentioning. The documentation of the project is simply amazing. It’s very clear and covers topics with examples and explanations.

    这也许不是框架的确切功能,但是值得一提。 该项目的文档简直太神奇了。 这非常清楚,并通过示例和解释涵盖了主题。

    性能 (Performance)

    FastAPI is fast! It is not only fast to code, but it also processes requests super fast! You can check the benchmarks across multiple frameworks using the TechEmpower benchmark tool. Here are the results I got for Python frameworks. Flask and Django are way behind on the list, with FastAPI being first and thus the most performant:

    FastAPI很快! 它不仅可以快速编码,而且还可以超快地处理请求! 您可以使用TechEmpower基准测试工具来检查多个框架中的基准 。 这是我为Python框架获得的结果。 Flask和Django排在后面,FastAPI排名第一,因此也是性能最高的:

    Image for post
    TechEmpower benchmark results
    TechEmpower基准测试结果

    自然异步 (Asynchronous by Nature)

    Let’s take a look at the following code:

    让我们看下面的代码:

    @app.post("/item/", response_model=Item)
    async def create_item(item: Item):
    result = await some_code_running_in_background(item)
    return result

    Is that JavaScript? I promise you it is not. Looks familiar, though, right? That snippet is actually Python using async methods.

    那是JavaScript吗? 我向你保证不是。 看起来很熟悉,对吧? 该片段实际上是使用异步方法的Python。

    FastAPI supports asynchronous endpoints by default, which can simplify and make your code more efficient. This is a huge advantage over Flask. Django already made some async support work, but it is not as integrated as it is in FastAPI.

    FastAPI默认情况下支持异步端点,这可以简化并提高代码效率。 与Flask相比,这是一个巨大的优势。 Django已经进行了一些异步支持工作,但是集成程度不如FastAPI。

    结论 (Conclusion)

    FastAPI is a relatively new framework that follows the minimalist approach of Flask but adds crucial features that make it easier to work with and stunningly performant. It is a great choice for your next API project, and I will be writing more about it as I use it more and more on my APIs.

    FastAPI是一个相对较新的框架,它遵循Flask的极简主义方法,但增加了一些关键功能,使其更易于使用且性能惊人。 对于您的下一个API项目来说,这是一个不错的选择,随着我在API上越来越多地使用它,我将对此进行更多的写作。

    Thanks for reading!

    谢谢阅读!

    翻译自: https://medium.com/better-programming/quickly-develop-highly-performant-apis-with-fastapi-and-python-4ac1f252c935

    python 开发api

    展开全文
  • python开发API接口

    千次阅读 2020-07-03 09:39:39
    python开发API接口 get接口 参数类型:application/from 例如:userId=1&userId=1&age=18&sex=男 import flask, json from flask import request ''' flask: web框架,通过flask提供的装饰器@server....

    python开发API接口

    get接口

    参数类型:application/from
    例如:userId=1&userId=1&age=18&sex=男
    
    import flask, json
    from flask import request
    '''
    flask: web框架,通过flask提供的装饰器@server.route()将普通函数转换为服务
    '''
    # 创建一个服务,把当前这个python文件当做一个服务
    server = flask.Flask(__name__)
    
    # server.config['JSON_AS_ASCII'] = False
    # @server.route()可以将普通函数转变为服务 的路径、请求方式
    @server.route('/list/project', methods=['get'])#'get',
    def Projectlist():
        proj= request.values.get('project')
        name= request.values.get('name')
        return project(proj,name)
    

    post接口

    参数类型:application/json
    例如:{“userId”:1,“sex”:“男”}
    
    #!/user/bin/env python3
    # -*- coding: utf-8 -*-
    import flask, json
    from flask import request
    
    
    '''
    flask: web框架,通过flask提供的装饰器@server.route()将普通函数转换为服务
    '''
    # 创建一个服务,把当前这个python文件当做一个服务
    server = flask.Flask(__name__)
    
    # server.config['JSON_AS_ASCII'] = False
    # @server.route()可以将普通函数转变为服务 的路径、请求方式
    @server.route('/login',methods=['post']) #入参为json
    def login():
        params = flask.request.json#当客户端没有传json类型或者没传时候,直接get就会报错。
        # params = flask.request.json #入参是字典时候用这个。
        if params:
            dic = {
                'user_name': params.get('user_name'),
                'pwd': params.get('pwd')
            }
            data = json.dumps(BusinessAPI().login(dic))
            logger.info("'/login',methods=['post']:%s;%s"%(str(dic),str(data)))
            return data
        else:
            data = json.dumps({"result_code": 3002, "msg": "入参必须为json类型。"})
            logger.info("'/login',methods=['post']:"+str(data))
            return data
    
    展开全文
  • 开源Python / Oracle实用程序-cx_Oracle cx_Oracle是一个Python扩展模块,可访问Oracle数据库并符合Python数据库API 2.0规范,并具有相当多的附加功能以及cx_Oracle 8.0版(开发版)cx_Oracle是一个Python扩展模块...
  • Google Spreadsheets Python API v4用于处理Google表格的简单界面。 功能:按标题,键或URL打开电子表格。 读取,写入和格式化单元格范围。 共享和访问控制。 批量更新。 Google Spreadsheets Python API v4用于处理...
  • 没有python DB API之前 接口程序十分混乱! 什么意思呢 ?也就是说一边是我们的python应用程序(包括一些SQL语句对数据库中的操作进行一遍又一遍的查询,另一边是我们的应用系统可以选用的数据库 比如MySQL,sql...

    背景:

    没有python DB API之前 接口程序十分混乱!

    什么意思呢 ?也就是说一边是我们的python应用程序(包括一些SQL语句对数据库中的操作进行一遍又一遍的查询,另一边是我们的应用系统可以选用的数据库 比如MySQL,sqlserver oracle 等一些)


    老板突然来新任务了 嘤嘤嘤~~~~~~~~~~~先写到这~~~~~~~~

    http://www.imooc.com/learn/475

    展开全文
  • 全套视频课:Python RESTful API 开发
  • Python API开发基础 Python是一种灵活的语言,不仅可以用于脚本开发,还可以用于更多用途。 通过了解Python RESTful API的工作原理,您可以使用Python为Web应用程序和移动应用程序构建强大的后端。 您将通过构建...
  • Python_api

    2014-10-07 14:47:14
    Python_api开发Python的帮助文档,仅用于学习!
  • Python库 用法 要求 您应该在注册为合作伙伴,以便您可以创建和管理shopify应用程序。 安装 要轻松安装或升级到最新版本,请使用 。 pip install --upgrade ShopifyAPI 目录 私人应用 开票 会话令牌 处理访问范围...
  • libtmux-tmux的脚本库libtmux是tmuxp...查看文档主页,API信息和体系结构详细信息。 安装$ [sudo] pip安装libtmux打开tmux会话会话名称foo,窗口名称栏$ tmux new-session -s foo -n bar通过python引导您的tmux会话$ py
  • 用 Django 开发一个 Python Web API

    千次阅读 多人点赞 2020-11-27 19:39:37
    Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。它是Python API开发中最受欢迎的名称之一,自2005年成立以来,其...

    Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。它是Python API开发中最受欢迎的名称之一,自2005年成立以来,其知名度迅速提升。

    Django由Django软件基金会(Django Software Foundation)维护,并获得了社区的大力支持,在全球拥有11,600多个成员。在Stack Overflow上,Django大约有191,000个带标签的问题。Spotify,YouTube和Instagram等网站都依赖Django进行应用程序和数据管理。

    本文演示了使用HTTP协议的GET方法从服务器获取数据的简单API。

    建立一个项目

    首先,为您的Django应用程序创建一个结构;您可以在系统上的任何位置执行此操作:

    $ mkdir myproject
    $ cd myproject
    

    然后创建一个虚拟环境,它能够使我们根据需要安装一些特定的包来跑通我们的程序,并且不影响当前环境,用完退出虚拟环境即可。

    $ python3 -m venv env
    $ source env/bin/activate
    

    在Windows上,使用命令env \ Scripts \ activate激活Python虚拟环境。

    安装Django和Django REST框架

    接下来,安装Django和Django REST框架模块:

    $ pip3 install django
    $ pip3 install djangorestframework
    

    实例化一个新的Django项目

    既然您已经为应用程序创建了工作环境,那么您必须实例化一个新的Django项目。与像Flask这样的小框架不同,Django在此过程中包含专用命令(请注意第一个命令中的结尾.字符):

    $ django-admin startproject tutorial .
    $ cd tutorial
    $ django-admin startapp quickstart
    

    Django使用数据库作为其后端,因此您应该在开始开发之前同步数据库。可以使用运行django-admin命令时创建的manage.py脚本来管理数据库。由于您当前位于tutorial路径中,因此请使用../命令来运行脚本,该脚本位于同一个路径中:

    $ python3 ../manage.py makemigrations
    No changes detected
    $ python4 ../manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions
    Running 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中创建用户

    使用示例密码password123创建一个名为admin的初始用户:

    $ python3 ../manage.py createsuperuser \
      --email admin@example.com \
      --username admin
    

    根据提示创建密码。

    在Django中实现序列化组件和视图层

    为了使Django能够将信息传递给HTTP GET请求,必须将传递对象转换为有效的响应数据。Django为此实现了序列化组件。

    在您的项目中,通过创建一个名为quickstart / serializers.py的新模块来定义一些序列化器,该模块将用于数据传输:

    from django.contrib.auth.models import User, Group
    from 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错误,JSONXML文档,图像或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
    
    class UserViewSet(viewsets.ModelViewSet):
        """
        API endpoint  allows users to be viewed or edited.
        """
        queryset = User.objects.all().order_by('-date_joined')
        serializer_class = UserSerializer
    
    class GroupViewSet(viewsets.ModelViewSet):
        """
        API endpoint  allows groups to be viewed or edited.
        """
        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(r'users', views.UserViewSet)
    router.register(r'groups', views.GroupViewSet)
    
    # Use automatic URL routing
    # Can also include login URLs for the browsable API
    urlpatterns = [
        path('', include(router.urls)),
        path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
    ]
    

    调整您的Django项目设置

    此示例项目的设置模块存储在tutorial / settings.py中,因此请在文本编辑器中将其打开,然后将rest_framework添加到INSTALLED_APPS列表的末尾:

    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的RESTful API的更深入的知识,请参阅Django文档(https://docs.djangoproject.com/en/2.2/)。

    推荐阅读

    如何在 Matplotlib 中更改绘图背景

    Python 解释器 PyPy 7.3.3 版本发布!

    有人在代码里下毒!慎用 pip install 命令

    点击下方阅读原文加入社区会员

    点赞鼓励一下

    展开全文
  • python flask api接口开发编程

    千次阅读 2018-06-12 18:34:05
    使用 Python 和 Flask 设计 RESTful API近些年来 REST (REpresentational State Transfer) 已经变成了 web services 和 web APIs 的标配。在本文中我将向你展示如何简单地使用 Python 和 Flask 框架来创建一个 ...
  • Stripe Python库提供了以Python语言编写的应用程序对Stripe API的便捷访问。 它包括一组API资源的预定义类,这些类可根据API响应动态地进行自身初始化,从而使其与Stripe API的各种版本兼容。 Stripe Python库Stripe...
  • python android api

    2015-03-07 14:35:55
    python用于安卓android phone开发api文档
  • 阅读最新文档-浏览GitHub Code Repository拥抱旨在使开发Python驱动的API尽可能简单,但再简单不过。 结果,它大大简化了Python API开发。 hug的De Read最新文档-浏览GitHub代码存储库hug的目标是使开发Python驱动的...
  • Python数据库API

    2019-03-06 20:15:02
    Python数据库API Python数据库API是一种连接到SQL数据库的标准化方式 Python支持连接各种数据库,比如说MySQ和...但是每个数据库都有相应的Python模块,它们的接口也是不同的,为了解决这个问题日,开发了一个...
  • 适用于Infermedica APIPython客户端 Infermedica Python客户端提供对创建的医学诊断API的实用访问。 在使用该库之前,必须先注册一个开发人员帐户,然后在获取App-Id和App-Key。 所有API文档也都在那里。 安装 ...
  • Python 3 API文档

    2020-01-16 00:28:28
    Python 3 API文档。Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发...
  • python API开发

    2015-07-21 17:31:15
    #!/usr/bin/env python #-*-coding:utf-8-*- from flask import Flask import json import MySQLdb app = Flask(__name__)  @app.route('/prodcost/')  def hello(prod_id):   try:  conn =
  • 这是Unilab Python开发团队2021的首次合作 操作说明 要远程运行该应用程序,请运行以下命令: pip install -r requirements.txt python main.py 要测试API,请查看 方法 功能名称 描述 方法的简短说明 结构体 ...
  • 用于Python的Docker SDK一个用于Docker Engine APIPython库。 它可以让您执行docker命令的所有操作,但是可以从Python应用程序内部执行-运行容器,管理容器,管理Swarms等。安装适用于Python的Docker SDK适用于...
  • 它是Python API开发中最受欢迎的名称之一,自2005年成立以来,其知名度迅速提升。 Django由Django软件基金会(Django Software Foundation)维护,并获得了社区的大力支持,在全球拥有11,600多个成员。在Stack ...
  • Python语言开发RESTful API指南,完整介绍了开发的方方面面。
  • openstack python api 开发

    千次阅读 2015-12-13 21:51:01
    获取openstack代码 ... 复制url,用git 获取代码 ...Python API 例如,对计算资源的操作 获取认证 nova list 创建虚拟机 删除虚拟机 PyCharm 开发环境 Eclipse+pydev 开发环境 环境要求: Ecl
  • Python 操作WPS开发API

    千次阅读 2020-08-20 17:14:00
    引用的库主要是Pywin32,通过该库直接调用WPS提供的开发API,因此必须在计算机上安装WPS,迁移时记得在目标主机上安装需要的依赖库(当然也可以直接打包成exe) 由于这种方式直接就是操纵WPS,因此完全可以用一样的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,066
精华内容 3,226
关键字:

python开发api

python 订阅