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 相关文章推荐
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python字符串拼接六种方法介绍
Dec 18 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
Flask框架踩坑之ajax跨域请求实现
Feb 22 Python
django query模块
Apr 20 Python
django框架使用方法详解
Jul 18 Python
python 如何区分return和yield
Sep 22 Python
利用python调用摄像头的实例分析
Jun 07 Python
Pytest中skip和skipif的具体使用方法
Jun 30 Python
python 学习GCN图卷积神经网络
May 11 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
php中memcache 基本操作实例
2015/05/17 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
基于javascript实现图片滑动效果
2016/05/07 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python注释详解
2016/06/01 Python
详解用python实现简单的遗传算法
2018/01/02 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
python中列表的含义及用法
2020/05/26 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
python3的pip路径在哪
2020/06/23 Python
python怎么判断素数
2020/07/01 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
机电一体化职业规划书
2014/01/07 职场文书
酒店总经理欢迎词
2014/01/15 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书