flask与数据库连接相关操作
---恢复内容开始---
首先要安装 flask-sqlalchemy
数据库连接设置
在flask-SQLAlchemy中,数据库使用URL指定,而且程序使用的数据库必须保存到flask配置对象的SQLALCHEMY_DATABASE_URL键中
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:mysql@127.0.0.1:3306/xinagmu?charset=utf8'
划横线哪里填库的名称,root后面跟数据库的密码
其他相关配置
相关的增删改查
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_pyfile('config.ini') # 建立数据库对象
db = SQLAlchemy(app)
# 建立数据库类,用来映射数据库,将数据库的模型作为参数传入 class User(db.Model): # 声明表明
__tablename__ = 'user'
# 建立字段数 Column字段名 固定写法
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(200))
password = db.Column(db.String(200)) # 数据库的入库操作 @app.route("/")
def index():
# 增加,入库逻辑
# 声明一个对象
# user = User(name='ssss', password='ssss')
# # 调用 添加方法
# db.session.add(user)
return '这是首页' # 数据库的删除操作
@app.route('/del')
def del_():
# 根据某个字段做删除,filter_by可以理解为where 条件限定
# 翻译为delete from user where id = 1
User.query.filter_by(id=1).delete()
return '删除' # 数据库的修改操作 @app.route('/edit')
def edit():
# 根据某个字段做修改操作
# 翻译为 update user set name = '张三' where id = 2
User.query.filter_by(id=4).update({'name': 'susu'})
return '修改' # 数据库的查询操作
@app.route('/select')
def select():
# 简单的的全量查询
# 翻译为select *from user
ulist = User.query.all()
print(ulist) for i in ulist:
print(i.name)
# 只取一条
# 翻译为 select *from user limit 1
# ulist = User.query.first()
# print(ulist) # 使用原生的sql语句
# 翻译为select * from user order by id desc limit 1,2
items = db.session.execute('select * from user order by id desc limit 1,2')
# 将结果集强转为list
items = list(items)
print(items) # 使用原生sql语句进行修改操作
# db.session.execute("update user set password='1234' where id=5 ") return '修改'if __name__ == "__main__":
app.run()
小案例:
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config.from_pyfile('config.ini')
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:mysql@127.0.0.1:3306/xinagmu?charset=utf8'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True db = SQLAlchemy(app) class Movies(db.Model):
id = db.Column(db.Integer, primary_key=True)
photo = db.Column(db.String(200))
title = db.Column(db.String(100))
score = db.Column(db.String(100))
evalueate = db.Column(db.String(100)) @app.route('/')
def index():
items = db.session.execute('select *from movies')
items = list(items)
print(items)
return render_template('movies.html', items=items) if __name__ == "__main__":
app.run()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>movies</title>
</head>
<body>
<table border="1">
<tr>
<td>id</td>
<td>photo</td>
<td>title</td>
<td>score</td>
<td>evalueate</td>
</tr>
{% for i in items %}
<tr>
<td>{{ i.id }}</td>
<td><img src="{{ i.photo }}" /></td>
<td>{{ i.title }}</td>
<td>{{ i.score }}</td>
<td>{{ i.evalueate }}</td>
</tr> {% endfor %}
</table>
</body>
</html>
效果:
---恢复内容结束---
flask与数据库连接相关操作的更多相关文章
- python三大框架之一flask中cookie和session的相关操作
状态保持 Cookie cookie 是指某些网站为了 辨别 用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- PHP对MySQL数据库的相关操作
一.Apache服务器的安装 <1>安装版(计算机相关专业所用软件---百度云链接下载)-直接install<2>非安装版(https://www.apachehaus.com ...
- Flask 的 数据库连接 与 DBUtils 数据库连接池
Flask 的 数据库连接 与 DBUtils 数据库连接池 本地线程:thread_local 为每个线程创建存储数据的空间,用于线程之间的数据隔离 否则多个线程同时访问,会使得数据混乱 1 Fla ...
- MySQL 库、表、记录、相关操作(1)
库.表.记录.相关操作(1) 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) .客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的 ...
- Phoenix简介概述,Phoenix的Java API 相关操作优秀案例
Phoenix简介概述,Phoenix的Java API 相关操作优秀案例 一.Phoenix概述简介 二.Phoenix实例一:Java API操作 2.1 phoenix.properties 2 ...
- openresty 学习笔记四:连接mysql和进行相关操作
openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...
- openresty 学习笔记三:连接redis和进行相关操作
openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...
- 6月20日 Django中ORM介绍和字段、字段参数、相关操作
一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...
随机推荐
- jmeter元件执行顺序及简介
最近在学习Jmeter,在进行实操之前,先查看了官方文档.因为官方文档是英文的,为了方便以后查看,自己翻译了一部分,中间个别地方根据自己的理解简单地翻译了部分.如果翻译等有问题,欢迎指正. 一.执行顺 ...
- 有关mysql的innodb_flush_log_at_trx_commit参数
一.参数解释 0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下在事务提交的时候,不会主动触发写入磁盘的操作. 1:每次事务 ...
- 【leetcode-100】 简单 树相关题目
100. 相同的树 (1过,熟练) 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 ...
- Linux 命令详解(十二)Systemd 入门教程:使用定时器发送邮件(mail)
Systemd 定时器教程:http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html 一.定时任务 Systemd 定时任务:每小时发送一封电 ...
- Mcafee(麦咖啡) 无法升级的解决办法(威流验证)
McAfee时会遇到更新失败的情况.为了解决这个问题,你需要做如下设置:1.“运行”>“dcomcnfg.exe”2.双击“组件服务>计算机>我的电脑”3.展开“DCOM配置”,打开 ...
- dependencies和devDependencies两者区别
在npm生成的package.json文件中,有devDependencies和dependencies两个环境 devDependencies 用于开发环境(本地) dependencies 用于生 ...
- vue-if与vue-show的区别
两者都是动态显示DOM元素 不同点: 1.使用方式 v-if是根据后面数据的真假,来判断DOM的添加删除等操作 v-show只是在修改元素的css样式(display属性值) 2.实现过程 v ...
- ubuntu 18.04//18.10&&windows 7/10双系统系统时间不一致
新版本的Ubuntu使用systemd启动之后,时间也改成了由timedatectl来管理,因此网上的许多方法就不适用了. 经过测试发现下面的方法可以解决双系统时间不一致问题: 1.将硬件时间UTC改 ...
- NFS网络共享文件系统
1.nfs服务端配置操作 1.1 创建所需的共享目录--源 mkdir /data/rw #rw代表同步的数据可读可写 1.2 对共享目录进行授权 chown -R nfsnobody.nfsno ...
- Codeforces891C(892E)
传送门:here 简述题意: ...