Python使用Flask-SQLAlchemy连接数据库操作示例


Posted in Python onAugust 31, 2018

本文实例讲述了Python使用Flask-SQLAlchemy连接数据库操作。分享给大家供大家参考,具体如下:

需要安装flask

pip install flask

安装Mysql-Python (这个是py的mysql驱动,这个在官方没有win的支持,只有第三方才有py2.7的whl)

pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl

注:上述whl文件也可点击此处链接下载到本地安装:https://www.lfd.uci.edu/~gohlke/pythonlibs/

安装 Flask-SQLAlchemy

pipi install Flask-SQLAlchemy

注意,如果出现了编码问题,安装的时候,有可能是终端的编码有问题,我换成了git bash shell就没问题了。

myflask.py

#coding:utf-8
from flask import Flask
#安装 python-mysql 因为没有官方支持win版本,只有网上有whl下载
#pip install flask_sqlalchemy
from flask_sqlalchemy import SQLAlchemy
import config #config.py导入
app = Flask(__name__)
app.config.from_object(config)  #SQLALchemy会自动从配置文件读取那个固定的URI字符串
db=SQLAlchemy(app)
db.create_all()
@app.route('/')
def hello_world():
  return '你好世界'
if(__name__=='__main__'):
  app.run(debug=True) #开启debug模式,这里如果出错会直接有提示

config.py

#coding:utf-8
#dialect+driver://username:password@host:port/database
DIALECT='mysql'
DRIVER='mysqldb'
USERNAME='root'
PASSWORD='root'
HOST='127.0.0.1'
PORT='3306'
DATABASE='flask0'
#这个连接字符串变量名是固定的具体 参考 flask_sqlalchemy 文档 sqlalchemy会自动找到flask配置中的 这个变量
SQLALCHEMY_DATABASE_URI='{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)

运行看控制台:(有一些无关紧要的警告,可以不管)

D:\Python27\python.exe D:/PythonProjects/learn0/myflask.py
D:\Python27\lib\site-packages\flask_sqlalchemy\__init__.py:794: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
D:\Python27\lib\site-packages\sqlalchemy\engine\default.py:470: Warning: Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 478
  cursor.execute(statement, parameters)
 * Restarting with stat
D:\Python27\lib\site-packages\flask_sqlalchemy\__init__.py:794: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
D:\Python27\lib\site-packages\sqlalchemy\engine\default.py:470: Warning: Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\xEA...' for column 'VARIABLE_VALUE' at row 478
  cursor.execute(statement, parameters)
 * Debugger is active!
 * Debugger PIN: 164-312-281
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [18/Oct/2017 16:01:03] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [18/Oct/2017 16:01:04] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [18/Oct/2017 16:01:06] "GET / HTTP/1.1" 200 -

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
Cython 三分钟入门教程
Sep 17 Python
Python中对象迭代与反迭代的技巧总结
Sep 17 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Python异常处理操作实例详解
May 10 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
基于Python实现用户管理系统
Feb 26 Python
python字符串Intern机制详解
Jul 01 Python
python读写csv文件方法详细总结
Jul 05 Python
python psutil模块使用方法解析
Aug 01 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
Python如何解除一个装饰器
Aug 07 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
浅谈Python traceback的优雅处理
Aug 31 #Python
python梯度下降法的简单示例
Aug 31 #Python
wxPython的安装与使用教程
Aug 31 #Python
python traceback捕获并打印异常的方法
Aug 31 #Python
基于python中theano库的线性回归
Aug 31 #Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 #Python
python实现梯度下降算法
Mar 24 #Python
You might like
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
bootstrap table实例详解
2017/01/06 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
python创建关联数组(字典)的方法
2015/05/04 Python
django2 快速安装指南分享
2018/01/05 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
Python类super()及私有属性原理解析
2020/06/15 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
大一新生期末自我评价
2014/09/12 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
市场营销计划书范文
2015/01/16 职场文书
泰山导游词
2015/02/02 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书