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语句 ...
随机推荐
- flask SQLALchemy外键及约束
from flask import Flask,session from flask_sqlalchemy import SQLAlchemy import config app = Flask(__ ...
- mssql的 for xml path 与 mysql中的group_concat类似MSSQL For xml Path
/****** Script for SelectTopNRows command from SSMS ******/ SELECT D_ID,[D_Name] as Name FROM [LFBMP ...
- HDU 1035(走迷宫 模拟)
题意是给定初始位置在一个迷宫中按照要求前进,判断多少步能离开迷宫或者多少步会走入一个长达多少步的循环. 按要求模拟前进的位置,对每一步在 vis[ ] 数组中进行已走步数的记录,走出去或走到已走过的位 ...
- mysql语句之约束语句
约束语句: not null 非空 default 默认约束语句 unique 唯一约束语句 primary 主键 = 唯一 + 非空 auto_increment 自动增长 foreign key( ...
- 07-查询操作(DQL)-多表查询
一. 综述 查询操作主要从两个方面来说:单表查询和多表查询. 多表查询包括:笛卡尔积.外键约束.内连接查询.外链接查询.自连接查询. 二 . 案例设计 1. 设计产品表(product). ...
- 029、限制容器的block IO(2019-01-24 周四)
参考https://www.cnblogs.com/CloudMan6/p/7016050.html Block IO ,是另一种可以限制容器使用的资源,block IO 指的是磁盘的读写,doc ...
- 细说shiro之四:在web应用中使用shiro
官网:https://shiro.apache.org/ 1. 下载在Maven项目中的依赖配置如下: <!-- shiro配置 --> <dependency> <gr ...
- 学院派福利——C#+SQL Server图书管理系统
这是sql server的第七.八次上机内容,抽了几天时间给做了 在原有的booksDB库中加了一个Admin表:UserName:root,PassWord:123456. 环境:Visual St ...
- 十四、文件和目录——文件时间和utime函数
14.1 文件时间 存在于 stat 结构体中 14.2 文件时间函数 14.2.1 介绍 utime(修改文件的存取时间和更改时间) 相关函数 utimes,stat #include <sy ...
- mysql数值运算符和函数
mysql> |+------------+1 row in set (0.00 sec) mysql> SELECT FLOOR(3.99); # 舍1取整+------------- ...