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基础教程之类class定义使用方法
Feb 20 Python
Python深入学习之上下文管理器
Aug 31 Python
Python操作MySQL简单实现方法
Jan 26 Python
Python中Continue语句的用法的举例详解
May 14 Python
Python实现求数列和的方法示例
Jan 12 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
python数据预处理方式 :数据降维
Feb 24 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
详解torch.Tensor的4种乘法
Sep 03 Python
python多次执行绘制条形图
Apr 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二维数组排序方法(array_multisort usort)
2013/12/25 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php格式化时间戳
2016/12/17 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
javascript编程起步(第四课)
2007/02/27 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
JavaScript 基本概念
2015/01/20 Javascript
jquery 插件实现瀑布流图片展示实例
2015/04/03 Javascript
在Javascript中处理字符串之big()方法的使用
2015/06/08 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
python中entry用法讲解
2020/12/04 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
好的演讲稿开场白
2013/12/30 职场文书
小学清明节活动方案
2014/03/08 职场文书
心理健康日活动总结
2014/05/08 职场文书
停电放假通知
2015/04/14 职场文书
认识实习感想
2015/08/10 职场文书
导游词之河北邯郸
2019/09/12 职场文书
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技