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网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
python根据时间生成mongodb的ObjectId的方法
Mar 13 Python
用Python编写web API的教程
Apr 30 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
python解包概念及实例
Feb 17 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初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php将金额数字转化为中文大写
2015/07/09 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
Javascript实现的分页函数
2007/02/07 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
python生成excel的实例代码
2017/11/08 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
兼职学生的自我评价
2013/11/24 职场文书
国税会议欢迎词
2014/01/16 职场文书
事业单位辞职信范文
2014/01/19 职场文书
职工趣味运动会方案
2014/02/10 职场文书
感谢信格式范文
2015/01/22 职场文书
公务员个人总结
2015/02/12 职场文书
导游词300字
2015/02/13 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers
基于redis+lua进行限流的方法
2022/07/23 Redis