在Flask中构建API接口

这篇具有很好参考价值的文章主要介绍了在Flask中构建API接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

重定向行为

斜杠

以下两个路由的不同之处在于是否使用尾部的斜杠。

第一个路由的URL尾部有一个斜杠,看起来就像一个文件夹,访问一个没有斜杠结尾的URL时,Flask会自动进行重定向,在结尾加上一个斜杠。

第二个路由的URL没有尾部斜杠,因此其行为表现与一个文件类似,如果访问这个URL时添加了尾部斜杠就会得到一个404错误,这样可以保持URL唯一,并帮助搜索引擎避免重复索引同一页面。

@app.route('/home/')
def hello_world():
    return 'Hello World!'
    
@app.route('/home')
def hello_world():
    return 'Hello World!'

redirect

from flask import Flask, redirect

@app.route('/baidu')
def baidu():
    return redirect('https://www.baidu.com')

Flask HTTP方法

1 GET 请求指定的页面信息,并返回实体主体。
2 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
3 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
4 DELETE 请求服务器删除指定的页面。
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return do_the_login()
    else:
        return show_the_login_form()

登录登出案例

# 登录
@app.route("/login", methods=['POST'])
def login():
    """
    username: 123456
    password: 123456
    :return:
    """
    get_data = request.get_json()
    username = get_data.get("username")
    password = get_data.get("password")

    if not all([username, password]):
        return jsonify(msg="参数不完整")

    if username == '123456' and password == '123456':
        # 如果验证通过,保存登录状态在session中
        session['username'] = username
        return jsonify(msg='登录成功')
    else:
        return jsonify(msg='账号或密码错误')

# 检查登录状态
@app.route("/session", methods=["GET"])
def check_session():
    username = session.get("username")
    if username is not None:
        return jsonify(username=username)
    else:
        return jsonify(msg="出错了,没登录")

# 登出
@app.route('/logout', methods=['GET'])
def logout():
    session.clear()
    return jsonify(msg='成功退出登录')

Cookie

要访问cookie,可以使用cookie属性,通过使用响应对象的set_cookie方法来设置cookie。请求对象的cookie属性是一个包含了客户端传输的所有cookie的字典。在Flask中,如果使用session,就不要直接使用cookie,因为session比较安全一些。

Session

session 是基于cookie实现, 保存在服务端的键值对(形式为 {随机字符串:‘xxxxxx’}), 同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的 时候验证。

一、配置SECRET_KEY

因为flask的session是通过加密之后放到了cookie中,所以需要配置“SECRET_KEY”。

配置方法

新建一个config.py的文件配置secret_key

config.py

SECRET_KEY = 'XXXXXXXXX'

然后在主运行文件里面添加config文件里面的内容。

from flask import Flask,session
import config
app = Flask(__name__)
app.config['SECRET_KEY'] = config.SECRET_KEY  # 写法一
app.secret_key = config.SECRET_KEY  # 写法二

二、操作session

操作session的方法就如同操作字典。

设置session

# 设置session
@app.route('/')
def set():
     session['name'] = 'lili' # 设置“字典”键值对
     return 'success'

读取session

因为session就像字典一样所以,操作它的时候有两种方法:

  • (1)result = session[‘key’] :如果内容不存在,将会报异常。
  • (2)result = session.get(‘key’) :如果内容不存在,将返回None(推荐用法)。
# 读取session
@app.route('/get')
def get():
    session['name']  # 写法一
    session.get('name')  # 写法二
    return 'success'

删除session

# 删除session
@app.route('/delete/')
def delete():
    session.pop('name',None)  # 写法一
    session['name'] = False  # 写法二
    return 'success'

清除session中所有数据

# 清除session中所有数据
@app.route('/clear')
def clear():
    session.clear()
    return 'success'

三、设置session的过期时间

若没有指定session的过期时间,那么默认是浏览器关闭后就自动结束。session.permanent = True语句在flask下则可以将有效期延长至一个月。

方法一

 # 设置session
 @app.route('/')
 def set():
     session['name'] = 'lili'
     session.permanent = True # 长期有效,一个月的时间有效
     return 'success'

方法二

  • 1.引入包:from datetime import timedelta
  • 2.配置有效期限:app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
  • 3.设置:session.permanent = True
#encoding: utf-8
from flask import Flask,session
from datetime import timedelta
import os 
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效 

# 设置session
@app.route('/')
def set():
    session['username'] = 'liefyuan'
    session.permanent = True
    return 'success'

Postman

在构建API接口时,可以使用Postman工具来进行接口测试。

Postman界面导航

在Flask中构建API接口文章来源地址https://www.toymoban.com/news/detail-464984.html

到了这里,关于在Flask中构建API接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FastAPI和Flask:构建RESTful API的比较分析

    Python 是一种功能强大的编程语言,广泛应用于 Web 开发领域。 FastAPI  和 Flask 是 Python Web 开发中最受欢迎的两个框架。本文将对 FastAPI 和 Flask 进行综合对比,探讨它们在语法和表达能力、生态系统和社区支持、性能和扩展性、开发工具和调试支持、安全性和稳定性、学习曲线

    2024年02月13日
    浏览(31)
  • 基于Flask写的API接口合集——SkyQianAPI

    文章来源:https://www.skyqian.com/archives/skyqianapi.html 平时我们会遇见一些比较简单实用的接口,比如检测域名是否被腾讯拦截,又或者是一些编解码问题。 再或者是翻译接口、生成短链接。 有时候呢,我们想要给自己的邮箱推送一条消息。如果访问一个链接就能快速实现,会不

    2024年02月09日
    浏览(25)
  • 使用 Python 和 Flask 构建简单的 Restful API 第 1 部分

            我将把这个系列分成 3 或 4 篇文章。在本系列的最后,您将了解使用flask构建 restful API 是多么容易。在本文中,我们将设置环境并创建将显示“Hello World”的终结点。         我假设你的电脑上安装了python 2.7和pip。我已经在python 2.7上测试了本文中介绍的代码,

    2024年02月13日
    浏览(38)
  • 手把手教你使用Flask框架构建Python接口以及如何请求该接口

    Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。 Flask是一个轻量级的Web应用框架,基于Python编写,其核心思想是保持简洁,灵活性和易于扩展。Flask提供了基本的Web开发工具和应用程序的结构,但同时也允许开发者自由选择其他库

    2024年02月06日
    浏览(95)
  • python3-Flask实现Api接口

    1、:python3-Flask实现Api接口_flask api_Shiro to kuro的博客-CSDN博客 2、  Flask框架的web开发01(Restful API接口规范)_flask patch post_~须尽欢的博客-CSDN博客

    2024年02月11日
    浏览(22)
  • 【GPT,Flask】用Python Flask结合OpenAI的GPT API构建一个可自主搭建的内容生成应用网站

    自己构建模型并进行训练需要很高的知识,技能和资源门槛。如今,通过OpenAI提供的API,则可以快速通过GPT能力构建可以提供内容生成服务的在线网站。这套框架可以提供给用户,用户可以利用该框架在自己的环境(比如自己的公司内)构建内容生成服务。你也可以自己上线

    2024年02月11日
    浏览(47)
  • python+flask+eventSource打造流式chatGPT生成式API接口

    后端用python,前端用web,怎么打通chatGPT API连接? 如果你遇到这样的情况: 科学上网登chat.openai.com开启一个新聊天,总是出现网页错误,刷新几次就没有对话的想法了。 获取了chatGPT的APIkey,用网上一大堆PHP/JSP/CURL的代码去试,效果很差,不是反应慢,就是兼容性不好。 用

    2024年02月04日
    浏览(36)
  • Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽

      以下是一个通过 Flask 构建 Web API 服务的详细示例,包含了各类请求(GET、POST、文件上传、静态资源下载)、每个方法独立配置路由、参数接收和解析、请求日志记录以及异常日志记录。请确保你已经安装了 Flask,你可以使用以下命令进行安装: 接下来是一个包含详细注释

    2024年02月04日
    浏览(44)
  • 构建未来的数字世界:创新开放API接口认证解决方案

    目录 1、引言 1.1 数字世界的发展 1.2 API接口的重要性 1.3 API接口认证的挑战 2、现有的API接口认证解决方案 2.1 基于令牌的认证方法 2.2 OAuth认证 2.3 OpenID认证 2.4 API密钥认证 3、创新开放API接口认证解决方案 3.1 双因素认证 3.2 生物特征认证 3.3 区块链认证 3.4 基于智能合约的认证

    2024年01月25日
    浏览(42)
  • 电商API数据采集接口——电商大数据构建及智能应用

      现在越来越多的电商企业和运营都开始关注数据的应用,在13年淘宝运营技巧的爆发,这其实就是数据带来的红利。在数据大爆炸的时代,数据分析已经成为了企业制定策略、发现问题的重要方法,所以,数据分析绝对是企业管理的贤内助!【电商大数据商品详情数据采集

    2024年04月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包