Flask Mysql数据库连接
下载库:
pip install flask-sqlalchemy
下载后进入终端使用python后import导入模块测试没有报错就说明成功了
py文件:
# -*- encoding: utf-8 -*-
from flask import Flask
#导入第三方链接库sql点金术
from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_pyfile('config.ini') # #指定数据库连接还有库名,也可以写到配置文件里,root前为固定写法,root对应的是mysql的密码@后对应的是服务网址和端口/这里对应的是数据库名?后指定的是字符集
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:mysql@127.0.0.1:3306/myflask?charset=utf8'
# #省略提交数据库,也可以加到配置文件里,下面操作有commit所以这里注释掉
# app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True #建立数据库对象
db = SQLAlchemy(app)
#建立数据库类,用来映射数据库表,将数据库的模型作为参数传入
class User(db.Model):
#声明表名
__tablename__ = 'user'
#建立字段函数 建立字函数段必须和建立好的mysql表内字段名和约束一致
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(255))
password = db.Column(db.String(255)) @app.route('/')
def index():
#增加,入库逻辑
#声名对象,调用类指定添加内容,id为自增主键可以不传入值
user = User(name="你好你好",password="asd789")
#调用添加方法
db.session.add(user)
# #提交入库
db.session.commit()
return '这是首页' #数据库的查询操作(查)
@app.route('/select')
def select_user(): # #简单的全量查询
# #翻译 select * from
# ulist = User.query.all()
# for i in ulist:
# print(i.name)
# print(i.password) # #只取一条
# #翻译成 select * from user limit 1
# ulist = User.query.first()
# print(ulist.name)
# print(ulist.password) # #使用原生的sql语句
# #翻译为select * from user order by id desc limit 1,2
items = db.session.execute('select * from user order by id desc')
#将结果集强转为list
items = list(items)
print(items) return render_template('day5.html',items=items) #数据库的修改
@app.route('/edit')
def edit_user(): #根据某个字段做修改操作
#翻译为 update user set name='张三' where id = 2
User.query.filter_by(id=2).update({'name':'','password':''}) #使用原生语句进行修改操作
# db.session.execute('update user set password = "123" where id = 6') return '修改操作' #数据库删除操作
@app.route('/del')
def deluser():
#删除根据某个字段做删除,filter_by可以理解为where条件限定
#翻译为delete from user where id = 1
User.query.filter_by(id = 8).delete()
return "这是删除操作" #数据库入库操作
@app.route('/')
def index():
#增加,入库逻辑 b
#声名对象
user = User(name="你好你好",password="asd789")
#调用添加方法
db.session.add(user)
# #提交入库
# db.session.commit()
return '这是首页' if __name__ == "__main__":
app.run()
Flask Mysql数据库连接的更多相关文章
- Python+Flask+MysqL的web建设技术过程
一.前言(个人学期总结) 个人总结一下这学期对于Python+Flask+MysqL的web建设技术过程的学习体会,Flask小辣椒框架相对于其他框架而言,更加稳定,不会有莫名其妙的错误,容错性强,运 ...
- Flask 的 数据库连接 与 DBUtils 数据库连接池
Flask 的 数据库连接 与 DBUtils 数据库连接池 本地线程:thread_local 为每个线程创建存储数据的空间,用于线程之间的数据隔离 否则多个线程同时访问,会使得数据混乱 1 Fla ...
- Python+Flask+MysqL的web技术建站过程
1.个人学期总结 时间过得飞快,转眼间2017年就要过去.这一年,我学习JSP和Python,哪一门都像一样新的东西,之前从来没有学习过. 这里我就用我学习过的Python和大家分享一下,我是怎么从一 ...
- 一个简单的MySql数据库连接池的实现
package cn.hc.connectionPool; import java.io.IOException; import java.io.InputStream; import java.sq ...
- 报表开发工具中mysql数据库连接编码转化失效解决方案
1. 问题描述 在报表开发工具FineReport中,mysql数据库连接通过数据连接编码转换进行编码的转换,在通过报表录入往数据库中录入中文数据的时候,总是出现乱码,这个该怎么解决呢? 2. 解决方 ...
- Mysql数据库连接、查询、记录集操作代码
Mysql数据库链接代码 function dbConnect($hostname,$username,$pass,$db_name,$pconnect =0) { $func=empty($pcon ...
- Mysql数据库连接查询
Mysql数据库连接查询 连接是关系数据库模型的主要特点.连接查询是关系数据库中最主要的查询,主要包括内连接.外连接等.通过连接运算可以 ...
- 子沐代码段——Flask+Mysql+Echarts可视化
前言 子沐不久前,使用Scrapy爬取了智联招聘的职位数据,并部署到服务器上,设置了定时任务.数据量日益庞大.子沐在想,数据不过只是存在数据库里,并没有什么意义,所以子沐萌发一个想法,那就是做一个可视 ...
- Python实现Mysql数据库连接池
python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...
随机推荐
- C#Note13:如何在C#中调用python
前言 IronPython 是一种在 .NET 及 Mono上的 Python 实现,由微软的 Jim Hugunin(同时也是 Jython 创造者) 所发起,是一个开源的项目,基于微软的 DLR ...
- leetcode资料整理
注:借鉴了 http://m.blog.csdn.net/blog/lsg32/18712353 在Github上提供leetcode有: 1.https://github.com/soulmachi ...
- MyBatis映射文件4(参数获取#{}和${}/select标签详解[返回类型为list])
参数获取 之前我们都是采用#{}的方式进行参数传递,其实MyBatis还有另外的参数传递方式${} 使用方法相同,但是还是有很大区别的 这里做一个测试: <select id="get ...
- github上测试服出现bug,如何回滚并获得合并之前的分支
使用场景: 当我们提交了一个pr,但是该pr合并之后,经过在测试测试有问题,需要回滚.这个时候主master代码将会被回滚到提交你的pr之前的代码.而你的pr由于已经被合并过了,所以无法继续提交. 这 ...
- MySQL系列:数据表基本操作(2)
1. 指定数据库 mysql> use portal; 2. 数据库表基本操作 2.1 查看数据表 mysql> show tables; +------------------+ | T ...
- Java8 flatMap的sample
外国人写得, 很不错 http://www.java67.com/2016/03/how-to-use-flatmap-in-java-8-stream.html package test; impo ...
- Python——Message控件
一.messagebox的方法: showerror : 错误提示对话框 showinfo : 信息提示对话框 showwarning : 警告对话框 askokcansel :确认或 ...
- 今天开始学习模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络。
话说上一次写这个笔记是13年的事情了···那时候忙着实习,找工作,毕业什么的就没写下去了,现在工作了有半年时间也算稳定了,我会继续把这个笔记写完.其实很多章节都看了,不过还没写出来,先从第5章开始吧, ...
- codeforces478C
Table Decorations CodeForces - 478C 你有r个红的,g个绿的和b个蓝的气球.要为宴会布置一张桌子,你恰好需要三个气球.附在桌子上的三个气球不应该有相同的颜色.如果我们 ...
- BZOJ1208[HNOI2004]宠物收养场——treap
凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...