Flask---flask-script、flask-sqlalchemy、flask_migrate、多app应用

2024-08-31 22:18

本文主要是介绍Flask---flask-script、flask-sqlalchemy、flask_migrate、多app应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      • flask-script使用
      • flask_sqlalchemy使用
      • flask_migrate使用
      • 多app应用

这里写图片描述

flask-script使用

1、入口文件manage.py
manage.py

from s8day130_pro import create_app
from flask_script import Manager
from flask_script import Command
from flask_script import Manager, Serverapp = create_app()
manager = Manager(app)# 自定义命令二:
@manager.command
def custom(arg):"""自定义命令python manage.py custom 123"""print(arg)# 自定义命令三:
@manager.option('-n', '--name', dest='name')
@manager.option('-u', '--url', dest='url')
def cmd(name, url):"""python manage.py cmd -n safly -u 'baidu.com'python manage.py cmd -name safly -url 'baidu.com'"""print(name, url)# 自定义命令一:
class Hello(Command):"""自定义命令python manage.py hello"""def run(self):print('hello world')manager.add_command('hello', Hello())# 启动项目python manage.py runserverif __name__ == '__main__':# app.run()manager.run()

flask_sqlalchemy使用

2、__init__.py文件

作用:将SQLAlchemy相关的所有功能都封装到db=flask_sqlalchemy.SQLAlchemy()对象中

from flask import Flask
from flask_sqlalchemy import SQLAlchemy# 包含了SQLAlchemy相关的所有操作
db = SQLAlchemy()def create_app():app = Flask(__name__)app.config.from_object('settings.DevelopmentConfig')from .views.account import acapp.register_blueprint(ac)db.init_app(app)return app

3、settings.py配置文件

class BaseConfig(object):# SESSION_TYPE = 'redis'  # session类型为redis# SESSION_KEY_PREFIX = 'session:'  # 保存到session中的值的前缀# SESSION_PERMANENT = True  # 如果设置为False,则关闭浏览器session就失效。# SESSION_USE_SIGNER = False  # 是否对发送到浏览器上 session:cookie值进行加密SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:root@127.0.0.1:3306/test?charset=utf8"SQLALCHEMY_POOL_SIZE = 5SQLALCHEMY_POOL_TIMEOUT = 30SQLALCHEMY_POOL_RECYCLE = -1# 追踪对象的修改并且发送信号SQLALCHEMY_TRACK_MODIFICATIONS = Falseclass ProductionConfig(BaseConfig):passclass DevelopmentConfig(BaseConfig):passclass TestingConfig(BaseConfig):pass

4、Blueprint文件

from flask import blueprints
from s8day130_pro import models
from s8day130_pro import db
ac = blueprints.Blueprint('ac',__name__)@ac.route('/login',methods=['GET','POST'])
def login():data = db.session.query(models.Users).all()print(data)db.session.remove()return 'Login'

5、编写离线脚本文件

drop_table.py

"""
Web运行时,flask程序运行起来,用户通过浏览器访问
离线脚本,自定义的一个py文件+使用flask中定义好的功能
"""from s8day130_pro import db
from s8day130_pro import create_app
from s8day130_pro import modelsapp = create_app()
#从栈拿app
with app.app_context():# db.drop_all()db.create_all()data = db.session.query(models.Users).all()print(data)

6、models.py类

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, UniqueConstraint, Index,DateTime,ForeignKey
from s8day130_pro import db

class Users(db.Model):__tablename__ = 'users'id = Column(Integer, primary_key=True,autoincrement=True)name = Column(String(32),nullable=False,unique=True)

直接运行离线脚本drop_table.py生成users
然后通过python manage.py runserver启动项目即可

flask_migrate使用

作用:做数据库迁移
依赖:
flask-script
flask-sqlalchemy

from flask_migrate import Migrate,MigrateCommand
from s8day130_pro import create_app,dbMigrate(app,db)
manager.add_command('db', MigrateCommand)

数据库迁移命名

    python manage.py db initpython manage.py db migrate # makemigrationspython manage.py db upgrade # migrate

多app应用

from flask import Flask
from werkzeug.wsgi import DispatcherMiddleware
from werkzeug.serving import run_simpleapp01 = Flask('app01')
app02 = Flask('app02')@app01.route('/login')
def login():return 'app01.login'@app02.route('/index')
def index():return 'app02.index'dm = DispatcherMiddleware(app01, {'/app02': app02,
})if __name__ == '__main__':run_simple('localhost', 5000, dm)

http://localhost:5000/app02/index
http://localhost:5000/login

这篇关于Flask---flask-script、flask-sqlalchemy、flask_migrate、多app应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125145

相关文章

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

JavaScript错误处理避坑指南

《JavaScript错误处理避坑指南》JavaScript错误处理是编程过程中不可避免的部分,它涉及到识别、捕获和响应代码运行时可能出现的问题,本文将详细给大家介绍一下JavaScript错误处理的... 目录一、错误类型:三大“杀手”与应对策略1. 语法错误(SyntaxError)2. 运行时错误(R

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式