当前位置:网站首页>Flask----应用案例
Flask----应用案例
2022-06-27 19:04:00 【laufing】
需求
- 创建app, 并使用配置文件配置mysql
- 创建一个apps目录, 内部创建一个users目录,users目录下创建user蓝图,并注册到app
- 为user蓝图配置路由;原生路由/info 返回info.html; restful api 路由/user/mobile 返回json数据。
- 为app配置跨域(使用flask_cors)
案例代码
- app.py
from flask import Flask
from flask import request, session, current_app, g
from flask_restful import Api, Resource
from flask_sqlalchemy import SQLAlchemy
from apps.users.user_app import user_app
from apps.users import models
from flask_cors import CORS
app = Flask(__name__)
# 配置app
app.config.from_pyfile("settings.py")
# 初始化数据库连接
db = SQLAlchemy(app)
# api接口, 蓝图中有自己的api对象
api = Api(app)
# 注册蓝图, 蓝图即扩展的应用,内部的路由也会放入url_map
app.register_blueprint(user_app)
if __name__ == "__main__":
print("xxx:", app.url_map)
# 配置跨域, 已测试
CORS(app, supports_credentials=True,
origins=["http://localhost:8080",],
methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"],
allow_headers=["x-requested-with", 'content-type', 'authorization', "author"],
expose_headers="*")
app.run(host="localhost", port=5000, debug=True)
- user_app.py
from flask import request, render_template
from flask import Blueprint
from flask import jsonify
user_app = Blueprint("user", __name__,
static_folder="static/users", # 暂时没有办法访问静态文件
template_folder="templates/users")
@user_app.route("/info", methods=["GET", "POST"], endpoint="userInfo")
def userInfo():
if request.method == "GET":
return render_template("users/info.html")
else:
return "没有页面"
from flask_restful import Api, Resource
# 为蓝图实例化api对象,添加restful api
api = Api(user_app)
class UserResource(Resource):
def get(self):
res = jsonify({
"code": 200,
"msg": "1733532..."
})
return res
api.add_resource(UserResource, "/user/mobile")
- manage.py
from app import app, db
from app import user_app
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command("db", MigrateCommand)
if __name__ == "__main__":
manager.run()
- settings.py
# 使用pymysql
import pymysql
pymysql.install_as_MySQLdb()
# 配置数据库, 有如上代码,就不能mysql+pymysql
# SQLALCHEMY_DATABASE_URI = "mysql+pymysql://lauf:[email protected]:3306/"
SQLALCHEMY_DATABASE_URI = "mysql://lauf:[email protected]:3306/flask_625"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
- models.py
边栏推荐
- Covering access to 2w+ traffic monitoring equipment, EMQ creates a new digital engine for all elements of traffic in Shenzhen
- Share an experience of self positioning + problem solving
- mime. Type file content
- 如何将队列里面的内容没秒钟执行一次优先级
- 数据平台调度升级改造 | 从Azkaban 平滑过度到Apache DolphinScheduler 的操作实践
- Galaxy Kirin system LAN file sharing tutorial
- 爱数课实验 | 第五期-基于机器学习方法的商品评论情感判定
- "Good voice" has been singing for 10 years. How can the Chinese language in the starry sky sing well in HKEx?
- squid代理服務器
- Love math experiment | Issue 8 - building of Singapore house price prediction model
猜你喜欢
BTC和ETH重新夺回失地!引领市场复苏?加密将步入“冰河时代”!
抗洪救灾,共克时艰,城联优品驰援英德捐赠爱心物资
Use the storcli tool to configure raid. Just collect this article
Zhongang Mining: the largest application field of new energy or fluorite
mysql使用笔记一
VMware vSphere ESXi 7.0安装教程
Best practice: optimizing Postgres query performance (Part 2)
Industry case | see the operation of bank digital transformation from the king of retail
Unity3D Button根据文本内容自适应大小
NVIDIA三件套环境配置
随机推荐
送你12个常用函数公式,用过的都说好
Abap-sm30 check before deletion
VMware vSphere ESXi 7.0安装教程
请教CMS小程序首页的幻灯片在哪里设置?
开启生态新姿势 | 使用 WrodPress 远程附件存储到 COS
本周二晚19:00战码先锋第8期直播丨如何多方位参与OpenHarmony开源贡献
Kirin V10 installation font
Wechat applet based service management system for college party members' Home System applet graduation design, Party members, activists, learning, punch in, forum
数据平台调度升级改造 | 从Azkaban 平滑过度到Apache DolphinScheduler 的操作实践
Shell script controls the startup and shutdown of services - with detailed cases
Ceph分布式存储
Character interception triplets of data warehouse: substrb, substr, substring
Explore gaussdb and listen to what customers and partners say
释放开源数据库创新力量 | 【甘肃】openGauss Meetup圆满结束
shell脚本控制服务的启动和关闭 - 具备详细案例
分享一次自己定位 + 解决问题的经历
Goldfish rhca memoirs: do447 managing projects and carrying out operations -- creating job templates and starting jobs
分享下我是如何做笔记的
非常全面的DolphinScheduler(海豚调度)安装使用文档
银河麒麟系统局域网文件共享教程