flask

您所在的位置:网站首页 sqlalchemy配置 flask

flask

2022-03-24 04:18| 来源: 网络整理| 查看: 265

flask_sqlalchemy简单用法 原创

812374156 2018-05-18 10:39:07 博主文章分类:Python ©著作权

文章标签 flask sql alchemy 文章分类 Python 编程语言

©著作权归作者所有:来自51CTO博客作者812374156的原创作品,请联系作者获取转载授权,否则将追究法律责任flask_sqlalchemy简单用法https://blog.51cto.com/xiong51/2117813 说明

  SQLAlchemy 是 Python 的 ORM 框架,它的理念是:数据库的量级和性能重要于对象集合,而对象集合的抽象又重要于表和行

1、安装 python: 3.6 flask: 1.0.2 flask_sqlalchemy: 2.3.2 环境windows pycharm 安装 -- 点击 file -- settings -- project py -- project interpreter 点击+号 需要安装:pymysql flask flask_sqlalchemy 2、文件结构

  flask_sqlalchemy简单用法

2.1、数据库连接 1、conf.ini文件 [db] NAME=test # 数据库帐号 PASSWD=test # 数据库密码 IPADDR=192.168.9.224 #连接地址 PORT=3306 # 端口 DATABASE=test # 数据库 2、model.py文件 用于连接数据库 # Flask类是flask框架的核心类,它实现了wsgi应用规范 from flask import Flask # 引用SQLAlchemy from flask_sqlalchemy import SQLAlchemy import configparser # 打开文件并获取文件 cf=configparser.ConfigParser() cf.read("conf.ini") NAME = cf.get('db','NAME') PASSWD = cf.get('db','PASSWD') IPADDR = cf.get('db','IPADDR') DATABASE = cf.get('db','DATABASE') # 新建app对象 app = Flask(__name__) # 加载配置信息,其中有数据库的配置信息,包含在SQLALCHEMY_DATABASE_URI中 app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://%s:%s@%s/%s"%(NAME, PASSWD, IPADDR, DATABASE) # 调试信息,如果不开会报错,true会占用内存 app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True # 将创建的flask框架与工程所需要使用的数据库绑定到一起, db = SQLAlchemy(app) # 如果定义在上面会因为db参数还没有创建,直接引会的话会报错 # 1、如果你打算在该文件引用User类,请保证全局引用 # 2、无论放在哪里,至少要在db = SQLAlchemy(app)执行后,生成db对象才能进行引用,否则会导致model.py文件执行错误。 from createtb import CreateTb # 手动创建函数,以便初始化数据 def db_init(): db.create_all() # 最后还需要执行初始化函数 db_init() 2.2、创建表文件 1、createtb.py # 引入model文件中的db函数 from model import db class CreateTb(db.Model): __tablename__ = 'createtb' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(30),unique=True) addr = db.Column(db.String(30),unique=True) def __init__(self, name, addr): self.name = name self.addr = addr #为以后调试输出提供接口 def __repr__(self): return '' % self.name db.Column说明 Integer 存储整数 String(size) 存储有长度的字符串 unique 唯一键 autoincrement 自动增长 primary_key 主键 2.3、启动 1、start.py 用于打开web站点,并创建数据库 from model import app # 路由至首页,显示hello flask @app.route('/') def hello(): return "hello flask" #启动app if __name__ == '__main__': app.run() app.debug = True 2.4、最终效果

启动start.pyflask_sqlalchemy简单用法

web查看效果flask_sqlalchemy简单用法

查看db

mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | createtb | +----------------+ mysql> desc createtb; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(30) | YES | UNI | NULL | | | addr | varchar(30) | YES | UNI | NULL | | +-------+-------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec) 3、增删查 需要在 model.py 这个文件中最后 import modle # 引用model文件, createtb已经引入到model文件中了 如果在引用createtb就会重复运行。 from model import CreateTb,db 添加 xiong1 = Roles(name = 'xiong1', addr = "bj") # 这一步是在缓存中操作的,所以最后需要commit提交 db.session.add(xiong1) db.session.commit() 如果说修改错误,不用commit直接使用 db.session.rollback() 直接回滚事务 # 查询全部 for user in CreateTb.query.all(): print(user.id, user.name, user.pwd) """ 1 xiong1 123456 2 xiong2 123456 3 xiong3 123456 """ # 精确查询 # u = CreateTb.query.filter_by(name='xiong1').first() # print(u.pwd) # 模糊查询 # for pwd in CreateTb.query.filter(User.pwd.ilike('%123%')).all(): # print(pwd.pwd, pwd.name) # update 更新操作 # 解释起来就是首先将对象查询出来,然后将修改的字段赋值,并将查询出的对象提交到数据库,这样更新操作就结束了。 # u = CreateTb.query.filter_by(name='xiong1').first() # u.pwd = 321123 # db.session.add(u) # db.session.commit() # delete u = CreateTb.query.filter_by(name='xiong1').first() db.session.delete(u) db.session.commit() 4、参考文档

  flask-sqlalchemy快速入门 - sqlachemy增删查 - 安装步骤说明特别细的

最后附上代码密码:z6r0

打赏 收藏 评论 分享 微博 QQ 微信 举报

上一篇:mysql备份复制-2

下一篇:python_day17_Django-1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3