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 相关文章推荐
跟老齐学Python之关于类的初步认识
Oct 11 Python
python实现按行切分文本文件的方法
Apr 18 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
浅谈django orm 优化
Aug 18 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
Python生态圈图像格式转换问题(推荐)
Dec 02 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
Python验证码截取识别代码实例
May 16 Python
python三子棋游戏
May 04 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
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
解析php获取字符串的编码格式的方法(函数)
2013/06/21 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
Javascript Select操作大集合
2009/05/26 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
python2和python3哪个使用率高
2020/06/23 Python
深入了解Python 变量作用域
2020/07/24 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
简单通用的简历自我评价
2014/09/21 职场文书
横空出世观后感
2015/06/09 职场文书
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL