成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Flask 中非常受歡迎的五個擴展插件

開發 前端
Flask-SQLAlchemy 直接在SQLAlchemy的基礎上封裝了一層,簡化了配置以及SQLAlchemy庫的導入路徑。

1. Flask-Admin

Django中有個殺手锏的功能就是自帶Admin面板,所有數據都可以通過Admin后臺來操作, Flask-Admin 就是一個功能和Django-Admin非常類似的庫,有了它你再也不需要直接去數據庫查數據改數據了。

Github地址:https://github.com/flask-admin/flask-admin

2.Flask-SQLAlchemy

Flask-SQLAlchemy 直接在SQLAlchemy的基礎上封裝了一層,簡化了配置以及SQLAlchemy庫的導入路徑。

# config.py
SQLALCHEMY_DATABASE_URI = ''


# app.py
def create_app(config_name=None, app_name=None):
"""使用工廠模式創建app"""
if not app_name:
app_name = __name__
app = Flask(app_name)

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
db.init_app(app)

# model.py
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String, unique=True, nullable=False)
email = db.Column(db.String, unique=True, nullable=False)


db.session.add(User(username="Flask", email="example@example.com"))
db.session.commit()

3.Flask-Migrate

Flask-migrate 是一個SQLAlchemy 數據庫升級遷移工具,基于Alembic實現,它提供了一系列命進行數據庫升級撤回操作。

from flask_alembic import Alembic

alembic = Alembic()
alembic.init_app(app)

4.Flask-JWT-Extended

前后端分離項目基本都是使用JWT來做用戶認證,這是一個用來實現JWT功能的擴展,提供了很多配置參數,非常靈活,直接在config中配置就可以,省去很多造輪子的麻煩。

from flask_jwt_extended import create_access_token
from flask_jwt_extended import get_jwt_identity
from flask_jwt_extended import jwt_required
from flask_jwt_extended import JWTManager
jwt = JWTManager(app)


# view.py
@app.route("/login", methods=["POST"])
def login():
username = request.json.get("username", None)
password = request.json.get("password", None)
if username != "test" or password != "test":
return jsonify({"msg": "Bad username or password"}), 401
# 賬號密碼正確就創建token返回給前端
access_token = create_access_token(identity=username)
return jsonify(access_token=access_token)


@app.route("/users", methods=["GET"])
@jwt_required()
def users():
# 這是一個需要用戶登錄后才可以訪問的接口,直接裝飾器jwt_required()修飾就可以,token校驗不通過時會直接攔截。

# 這里的identity返回的對象取決于前面創建token的方法傳的參數identtiy是什么
current_user = get_jwt_identity()
return jsonify(logged_in_as=current_user), 200

還可以通過實現user_loader_callback_loader回調獲得 get_current_user 對象

@jwt_ext.user_loader_callback_loader
def loader_user_callback(identity):
return User.query.filter_by(username=identity).first()

特別是4.0還實現了白名單功能,可直接對用戶進行登錄限制。

5.Flask-Limiter

Flask-Limiter 用于做接口頻率限制的,它可以靈活基于不同資源來限制請求的次數,例如你可以對整個app做限制,頁可以對某個blueprint限制,或者是對路由做限制,還支持自定義配置。

from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address

app = Flask(__name__)
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=["200 per day", "50 per hour"]
)
@app.route("/slow")
@limiter.limit("1 per day")
def slow():
return ":("

@app.route("/medium")
@limiter.limit("1/second", override_defaults=False)
def medium():
return ":|"

本文轉載自微信公眾號「Python之禪」,可以通過以下二維碼關注。轉載本文請聯系Python之禪公眾號。

責任編輯:武曉燕 來源: Python之禪
相關推薦

2012-06-04 09:26:11

Eclipse插件Java

2018-08-24 09:09:49

Studio代碼程序

2024-06-04 00:00:02

實用插件IDEA

2019-09-11 09:38:18

開源技術 趨勢

2022-03-15 08:41:57

Firefox擴展瀏覽器

2015-08-26 10:15:11

OSCONDockerDocker技巧

2012-07-05 15:06:40

PHP

2021-06-16 10:28:27

IT主管首席信息官

2020-11-17 11:39:00

JavaScript前端編程語言

2023-03-27 23:37:21

2015-04-28 13:51:52

開源云項目IaaSPaaS

2019-04-28 15:30:48

物聯網崗位IOT

2025-04-30 08:00:00

Vue3拖拽組件開發

2020-07-07 11:33:31

開源技術 軟件

2019-02-19 15:13:27

JavaGitHub

2023-04-11 08:26:34

2012-08-03 09:41:26

jQuery

2014-01-02 14:24:29

火狐擴展火狐瀏覽器

2019-07-09 06:45:26

UbuntuLinux應用

2014-05-30 10:11:33

Linux 命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美理论片在线 | 激情五月婷婷综合 | 欧美色综合一区二区三区 | 亚洲高清视频一区二区 | 亚洲美女一区二区三区 | 中文字幕在线一区 | 精品欧美一区二区三区久久久 | 精品久久久久久中文字幕 | 亚洲国产一区二区视频 | 美女久久久 | 欧美嘿咻 | 逼逼网| 成人精品一区 | 三级在线免费 | 亚洲高清久久 | 国产免费av在线 | 欧美成人二区 | 欧美日韩中文字幕在线 | 精品一二三区 | 777777777亚洲妇女 | 亚洲国产免费 | 国产精品久久久久久久粉嫩 | 日韩欧美在线观看视频网站 | 久久网一区二区 | 亚洲日日操 | 日韩欧美手机在线 | 91在线一区二区 | 亚洲不卡在线观看 | 亚洲国产日本 | 成人免费在线视频 | 免费在线成人 | 精品粉嫩aⅴ一区二区三区四区 | 国产精品免费看 | 性高湖久久久久久久久3小时 | 国产激情在线观看视频 | 欧美日韩一区二区三区四区 | 欧美三级久久久 | 国产精品中文字幕在线播放 | 国产99久久精品一区二区永久免费 | 精品视频一区在线 | 久久婷婷国产香蕉 |