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数据库请求时,都是独立的去请求访问,相当浪费资源,而且访 ...
随机推荐
- cordova微信支付回调App闪退
这是cordova版本太高,不兼容这个插件所导致的.解决方案是修改$your_project/plugins/cordova-plugin-wechat/scripts/android-install ...
- How to mount HFS EFI on macOS
mount_hfs /dev/disk0s1 /volumes/efi
- cuda编程-矩阵乘法(1)
本方法采用简单的单线程计算每组行和列乘加运算 代码如下: #include <stdio.h> #include <stdlib.h> #include <iostrea ...
- Military Problem CodeForces 1006E (dfs序)
J - Military Problem CodeForces - 1006E 就是一道dfs序的问题 给定一个树, 然后有q次询问. 每次给出u,k, 求以u为根的子树经过深搜的第k个儿子,如果一个 ...
- Nginx 优先选择连接最少的上游服务器
详见陶辉87课 upstream test { server ; server ; least_conn ; zone backends 64k; }
- HTTP协议【详解】——经典面试题
http请求由三部分组成,分别是:请求行.消息报头.请求正文 HTTP(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接 ...
- socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少
常识一:文件句柄限制 在Linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是"Socket/File ...
- 部署 Django
补充说明:关于项目部署,历来是开发和运维人员的痛点.造成部署困难的主要原因之一是大家的Linux环境不同,这包括发行版.解释器.插件.运行库.配置.版本级别等等太多太多的细节.因此,一个成功的部署案例 ...
- 洛谷P2670扫雷游戏题解
题目 这道题是一个简单的模拟搜索题,可以把每个雷的位置都记作1. 这样就可记录出数字啦 #include<iostream> #include<cstring> using n ...
- 洛谷P1897电梯里的爱情题解
题目 这个题是一个搜索题,可以先算出最高楼层,并算出不重复的楼层的个数,要注意的一点就是一定不要把0楼算在内. 代码 #include<iostream> #include<cstr ...