Flask_sqlalchemy数据库扩展模块_sqlalchemy扩缩容_dodobibibi的博客-程序员宅基地

技术标签: python  

1. 什么是Flask-SQLAlchemy?

Flask-SQLAlchemy 是一个 Flask 扩展, 简化了在 Flask 程序中使用 SQLAlchemy 的操作。
SQLAlchemy 是一个很强大的关系型数据库框架, 支持多种数据库后台。
SQLAlchemy 提供了高层 ORM, 也提供了使用数据库原生 SQL 的低层功能。

2. 如何安装Flask-SQLAlchemy?

pip install flask-sqlalchemy

3. 如何配置数据库?

from flask_sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] ='sqlite:///' + os.path.join(basedir, 'data.sqlite')
# sqlchemy将会追踪对象的修改并且发送信号
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

4. 连接mysql数据库报错解决

import pymysql
pymysql.install_as_MySQLdb()

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:redhat@localhost/UserTest'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 实例化对象
db = SQLAlchemy(app)

5. 如何定义模型?

  • 模型这个术语表示程序使用的持久化实体
  • 模型列类型
  • 模型列属性
class User(db.Model):
    # 默认情况下表名为类的名称, 如果想要重新设置表名( __tablename__)
    # 类变量 __tablename__ 定义在数据库中使用的表名
    __tablename__ = "用户信息"
    # db.Column 类构造函数的第一个参数是数据库列和模型属性的类型
    # db.Column 中其余的参数指定属性的配置选项
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(30), unique=True, nullable=Flase)  
    # unique=True用户名不能重复
    password = db.Column(db.String(20), nullable=Flase)
    email = db.Column(db.String(20), unique=True)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dodobibibi/article/details/88392761

智能推荐

UML04 - 状态机视图-程序员宅基地

概述 状态机视图通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为。每一个对象都被看作是通过对事件进行探测并做出回应来与外界其他部分通信的独立的实体。事件表示对象可以探测到的事物的一种运动变化—如接受到从一个对象到另一个对象的调用或信号、某些值的改变或一个时间段的终结。任何影响对象的事物都可以是事件,真实世界所发生的事物的模型通过从外部世界到系统的信号来建造的。 状态是给定类的对象的一组属性值,这组属性值对所发生的事件具有相同性质的反应。换而言之,处于相同状态..._状态机视图

STM32F103C8T6 16位定时器级联为32位定时器_stm32f103 定时器级联-程序员宅基地

为什么使用STM32F1定时器的级联,主要是因为某些对于计时要求高的场合,而STM32F1单片机16位的定时器最多计数65535,那么很明显us级别的计时只能维持6.5535ms,有时候解算过程可能不止6.5535ms,因此需要级联一个32位定时器作为计数器或者计时器。那么,在使用SMT32F1的定时器级联前,首先需要知道哪些可以级联以及定时器Master(主)Slave(从)关系,可以参见这篇..._stm32f103 定时器级联

ARM板Ubuntu平台上编译CANFestival的方法-程序员宅基地

以调试的CANopen I/O模块为例进行说明。根据对象字典中定义的输入输出变量DI1、DI2、DO1、DO2,PDO同步传输数据如下:void TestMaster_post_sync(CO_Data* d){DO1++;// 低8位数字输出端口DO2++;// 高8位数字输出端口eprintf("MicroMod Digital In: %2.2x\n",DI1)

HDU 1166 敌兵布阵(线段树单点加区间查询)-程序员宅基地

Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C...

C++多线程之旅-future等待事件_c++ future timeout-程序员宅基地

目录前言future总结前言前一篇文章讲到了关于condition_variable的使用,但是这种方法太过于底层了,不是很方面,而且需要对调用方进行操作。这样对于程序员来说太过于麻烦,引入一个全新的接口,让被调用的线程自动进行,调用线程直接调用结果就行。这就是C++引入的future()类,而且这种方式可以在不同线程之间传递数据。我们首先假设情况现在有两个线程,线程A等待线程B执行结果,线程B执行完成之后将结果返回给线程A。之前在condition_variable里面是在线程外定义一个全局变量,但_c++ future timeout

随便推点

怎么让html页面加载自动f11_js 默认按下F11 全屏模式-程序员宅基地

全屏var docElm = document.documentElement;//W3Cif (docElm.requestFullscreen) {docElm.requestFullscreen();}//FireFoxelse if (docElm.mozRequestFullScreen) {docElm.mozRequestFullScreen();}//Chrome等else if ..._html 默认触发f11

【笔记】【汇编语言】第1章 基础知识-程序员宅基地

1.1 机器语言1.2 汇编语言的产生 程序员 -> 汇编指令 -> 编译器 -> 机器码 -> 计算机1.3 汇编语言的组成 (1) 汇编指令:机器码的助记符,有对应的机器码 ****注 (2) 伪指令:没有对应的机器码,由编译器执行,计算机并不执行 (3) 其他符号:如+,-,*,/等,由编译器识别,没有对应的机器码1.4 存储器 离开了内存,性能...

android 标题字体大小,如何修改android studio标题字体大小-程序员宅基地

匿名用户1级2017-03-08 回答之前为大家讲解了android studio怎么修改字体大小和颜色?其实android studio代码字体样设置位置和之前将的设置位置是一样的,这里再给大家详细介绍一下具体的步骤,另外本文也为大家总结了一些android studio字体设置相关的问题,大家可以看看。android studio怎么设置代码字体样式?打开设置功能窗口。两种方式:a. 【Fil..._android studio title 字体

Android中Application全局方法(变量)的调用-程序员宅基地

Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Application并在manifest的..._多applilcation怎么调用

分享6款国内、外开源PHP轻论坛CMS程序-程序员宅基地

第一、StartbbsStartbbs,一款国产个人兴趣分享的轻论坛程序,采用PHP+MYSQL架构,目前版本是V1.1.5,之前我也有搭建使用过功能还是比较简单的,默认风格比较让普通用户接受,这样不会做模板的可以直接使用。但是,由于作者工作比较忙,更新比较缓慢,其官方网站论坛充斥各种垃圾信息很少有维护。这款轻论坛基础还是很不错的,如果后期有升级和安全处理,是一款不错...

怎样将数据库中的id属性设置为自增_商品id(id)自增类型-程序员宅基地

在自己创建的数据库表中,选中id,将标识规范改为是_商品id(id)自增类型