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实现验证码识别功能
Jun 07 Python
pandas通过索引进行排序的示例
Nov 16 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
python脚本开机自启的实现方法
Jun 28 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python try except异常捕获机制原理解析
Apr 18 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
python_tkinter事件类型详情
Mar 20 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
php对数组内元素进行随机调换的方法
2015/05/12 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
Javascript 刷新全集常用代码
2009/11/22 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
Javascript 遍历页面text控件详解
2014/01/06 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
Python完全新手教程
2007/02/08 Python
Python文件的读写和异常代码示例
2017/10/31 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python运维开发之psutil库的使用详解
2018/10/18 Python
Python3爬虫学习入门教程
2018/12/11 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
《雕塑之美》教学反思
2014/04/24 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
600字作文之感受大自然
2019/11/27 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python