11-Manager 和 模型Model

news2024/9/25 11:16:57

准备工作:

一. Manager 库:

Manager: 用于管理相关操作端命令和使用相关操作端命令

        (1). 安装flask-script: pip install flask-script==2.0.3

        (2). 在app.py中 包装 app

from apps import create_app

# Manager类用于管理相关操作端命令和使用相关操作端命令
from flask_script import Manager

# 创建app对象
app = create_app()
manager = Manager(app=app) # 重新包装app

if __name__ == '__main__':
    # app.run()
    manager.run() # manager运行方式

        (3). 使用命令在终端运行:

python app.py runserver
python app.py runserver -h 0.0.0.0 -p 8080

       (4). 拓展:  在app.py中 自定义 manager命令

from apps import create_app
from flask_script import Manager

app = create_app()
manager = Manager(app=app)

# 自定义添加命令
@manager.command
def init():
    print("初始化")

if __name__ == '__main__':
    manager.run()

# 终端运行: python app.py init

           

二. 数据库相关库 和 配置:

        (1). 安装第三方库文件

                        pip install pymysql     : 保持持久化
                        pip install flask-sqlalchemy==3.0.3  : 实现ORM映射
                        pip install flask-migrate==2.7.0   : 发布命令工具

        (2). settings.py中配置数据库地址
# 配置文件
class Config:  # 定义父类当做公共配置
    DEBUG = True
    # mysql + pymysql ://user:password@hostIp:port/databasename
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@127.0.0.1:3306/flaskday05'
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 忽略警告
    SQLALCHEMY_ECHO = True  # 开发调试

class DevelopmentConfig(Config):  # 开发环境
    ENV = "development"

class ProductionConfig(Config):  # 生产环境
    ENV = 'production'
    DEBUG = False
        (3). 创建ext包 ,编辑__init__.py ,创数据库的建映射对象

        (4). 编辑apps / __init__.py,将db数据库映射对象与app进行关联

        (5). 编辑app.py 创建数据库的映射关系

 

 Model模型(数据库):

类和表对应关系:

                ORM   --> 
                类对象    -->  表中的一条数据

        (1).在apps / user 创建models.py文件,创建模型类

        (2). 在app.py中导入模型类

        (3). 在终端使用命令生成表

python app.py db init       # 产生一个文件夹 migrations,只需执行一次
python app.py db migrate    # 迁移: 自动生成一个版本文件,在migrations/version生成一个.py文件
python app.py db upgrade    # 同步: 生成数据库表
 
 
python app.py db downgrade  # 降级: 数据库版本回退

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录Taro大坑2丢失api无法启动

现象 解决方案 看了很多。很多说要改成一致的版本号。其实没什么用。 正确方案 再新建一个模板跑起来对比config的配置,以及package.json发现关闭预编译即可。预编译导致api丢失

AR室内导航技术之技术说明与效果展示

随着科技的飞速发展,我们周围的环境正在经历着一场数字化的革命。其中,AR室内导航技术以其独特的魅力,为我们打开了一扇通往全新数字化世界的大门。本文将为您详细介绍这一技术的实现原理、工具应用以及成品展示,带您领略AR室内导…

【Liunx】操作系统

操作系统 1.概念2.如何理解管理 1.概念 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理) 其他程…

vscode C++17便捷配置教程(懒人版)

环境链接 以上是已经配置好的c17环境链接,直接下载解压即可(注意文件路径上不要带有中文) 下载解压之后按照msys64-mingw64-bin路径打开 然后单击该路径右方空白区域可直接复制路径 然后点击开始菜单搜索“环境变量“并打开(如…

GitHub要求2FA,如何设置?

手机下载app:神锁离线版 打开2FA设置页面 电脑网页登录GitHub账号 -> “Settings” -> “Password and authentication” -> “Enable two-factor authentication”;使用app设置2FA “Set up using an app” -> “Continue”,看到一个二维码…

数据采集:selenium 获取某网站CDN 商家排名信息

写在前面 工作中遇到,简单整理理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大…

openresty安装与网站发布

文章目录 安装依赖下载安装包解压安装包安装启动nginx配置环境变量配置开机启动发布静态网站 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动…

Kafka系列:查看Topic列表、消息消费情况、模拟生产者消费者

1、查看kafka队列中topic信息 1.1、查看所有topic ./kafka-topics.sh --zookeeper 10.128.106.52:2181 --list1.2、查看kafka中指定topic的详情 ./kafka-topics.sh --zookeeper 10.128.106.52:2181 --topic ai_jl_analytic --describe2、查看消费者consumer的group列表 2.1…

2022版 的IDEA创建一个maven项目(超详细)

一.设置idea中指定的maven的位置以及本地存储仓库 开发中一般我们使用自己下载的maven,不使用IDEA工具自带的,这就需要将我们下载的maven配置到IDEA工具中,配置如下图所示: 或者直接 快捷键 CtrlAltS 直接进入设置 maven home pa…

MPLS——多协议标签交换

多协议:可以基于多种不同的2层协议和3层协议来生成2.5层的标签信息; 标签交换: 数据包在进入到的MPLS的域内后,将在第2层和3层中间压入标签号;使得域内的路由器在转发该数据包时,基于2.5层的标签号仅需要查…

【TypeScript】装饰器 Decorator

装饰器(Decorators)是 TypeScript 中一种特殊的语法,用于在类、方法、属性等元素上附加元数据或修改其行为。装饰器提供了一种在不改变类的定义的情况下,对类进行扩展或修改的方式。 装饰器的使用类似于注解,在代码中…

胖小酱之我没全抄

如果你在考试中抄袭同桌的答案被发现,这是一个严重的违规行为,可能会对你的成绩和未来的学业产生不利影响。以下是一些应对这种情况的建议:1. 承认错误:首先,你需要承认自己的错误,并向老师道歉。你可以向老…

矢量图层中要素的几何特征和属性特征的访问

打开QGIS Desktop 3.22.16,加载一个矢量图(Ex48/area.shp) 激活当前矢量图层 layeriface.activeLayer() 获取当前矢量图层矢量数据的个数 from qgis.utils import ifacelayer iface.activeLayer() # 得到当前激活的图层 print(layer.id()…

计算机图形视觉基础

一、环境安装 1、anaconda安装 官网下载:Free Download | Anaconda 2、打开anaconda prompt测试是否安装成功 输入conda env list命令显示虚拟环境清单即可 二、创建开发虚拟环境 1、创建python3.8虚拟环境 conda create --name demo_py3.8 python3.8 2、激…

渠道窜货怎么解决

品牌渠道中的常见问题有哪些? 低价、窜货是品牌需要治理的渠道常见问题,一般说到窜货就会提到低价,因为这两者是密不可分的,低价会带来窜货,窜货也必然有低价的影响,所有违规行为的背后,都是有…

Unity - 制作package 插件包

1.将制作的插件包代码放置一个根目录下 2.在跟目录下创建package.json文件 //package.json {"name": "com.unity.customlibrary", //插件包名:com.组织名.包名"displayName": "CustomLibrary", //显示的插件名"v…

程序员行业有必要考PMP吗?

首先,给大家简单普及一下什么是PMP? PMP(Project Management Professional)指项目管理专业人士(人事)资格认证。美国项目管理协会(PMI)举办的项目管理专业人员(PMP)认证考试在全球1…

海思Hi3861L开发二-SDK编译与下载

一、简介 上篇文章,我们介绍了海思Hi3861L的环境搭建,那这篇文章,我们就开始SDK的编译与下载吧。 准备: SDK:https://download.csdn.net/download/qq_26226375/88245580 开发环境:海思Hi3861L开发一-环境搭建_t_guest的博客-CSDN博客 二、SDK介绍 将SDK解压后,会出现如…

【Java架构-包管理工具】-Maven基础(一)

本文摘要 Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven概念、模型、安装配置、基本命令 文章目录 本文…

2023-8-24 模拟堆

题目链接&#xff1a;模拟堆 #include <iostream> #include <string.h>using namespace std;const int N 100010;int h[N], ph[N], hp[N], Size;void heap_swap(int a, int b) {swap(ph[hp[a]], ph[hp[b]]);swap(hp[a], hp[b]);swap(h[a], h[b]); }void down(in…