---恢复内容开始---

首先要安装  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与数据库连接相关操作的更多相关文章

  1. python三大框架之一flask中cookie和session的相关操作

    状态保持 Cookie cookie 是指某些网站为了 辨别  用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...

  2. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  3. PHP对MySQL数据库的相关操作

    一.Apache服务器的安装 <1>安装版(计算机相关专业所用软件---百度云链接下载)-直接install<2>非安装版(https://www.apachehaus.com ...

  4. Flask 的 数据库连接 与 DBUtils 数据库连接池

    Flask 的 数据库连接 与 DBUtils 数据库连接池 本地线程:thread_local 为每个线程创建存储数据的空间,用于线程之间的数据隔离 否则多个线程同时访问,会使得数据混乱 1 Fla ...

  5. MySQL 库、表、记录、相关操作(1)

    库.表.记录.相关操作(1) 数据库配置 # 通过配置文件统一配置的目的:统一管理 服务端(mysqld) .客户端(client) # 配置了 mysqld(服务端) 的编码为utf8,那么再创建的 ...

  6. Phoenix简介概述,Phoenix的Java API 相关操作优秀案例

    Phoenix简介概述,Phoenix的Java API 相关操作优秀案例 一.Phoenix概述简介 二.Phoenix实例一:Java API操作 2.1 phoenix.properties 2 ...

  7. openresty 学习笔记四:连接mysql和进行相关操作

    openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在red ...

  8. openresty 学习笔记三:连接redis和进行相关操作

    openresty 学习笔记三:连接redis和进行相关操作 openresty 因其非阻塞的调用,令服务器拥有高性能高并发,当涉及到数据库操作时,更应该选择有高速读写速度的redis进行数据处理.避 ...

  9. 6月20日 Django中ORM介绍和字段、字段参数、相关操作

    一.Django中ORM介绍和字段及字段参数 二.Django ORM 常用字段和参数 三.Django ORM执行原生SQL.在Python脚本中调用Django环境.Django终端打印SQL语句 ...

随机推荐

  1. springboot入门使用

    一.什么是springboot,有什么用 springboot是一个开发框架,其出现的目的利用约定大于配置的思想来让开发者摆脱spring繁琐的配置,简化开发.其不是spring框架的替代品,是spr ...

  2. python遇到的知识点

    python遇到的知识点,记录一下.方便学习. 文件相关操作 查了资料,关于open()的mode参数: 'r':读 'w':写 'a':追加 'r+' == r+w(可读可写,文件若不存在就报错(I ...

  3. 13.模板方法(Template Method)

    无处不在的Template Method     如果你只想掌握一种设计模式,那么它就是Template Method!动机(Motivate):    变化 -----是软件设计的永恒主题,如何管理 ...

  4. [C#]一个简易的、轻量级的方法并行执行线程辅助类

      一个简易的.轻量级的方法并行执行线程辅助类 在实际应用中,经常要让多个方法并行执行以节约运行时间,线程就是必不可少的了,而多线程的管理经常又是一件头疼的事情,比如方法并行执行异步的返回问题,方法并 ...

  5. 【1】【leetcode-76】 最小覆盖子串

     最小覆盖子串(hard) (不会) 给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串. 示例: 输入: S = "ADOBECODEBANC", ...

  6. Leetcode 136 Single Number 仅出现一次的数字

    原题地址https://leetcode.com/problems/single-number/ 题目描述Given an array of integers, every element appea ...

  7. 深入浅出mybatis之与spring集成

    目录 写在前面 详细配置 1.dataSource(数据源) 2.sqlSessionFactory(Session工厂) 3.Mapper(映射器) 4.TransactionManager(事务管 ...

  8. 细说log4j之概述

    log4j官网:https://logging.apache.org/ log4j目前存在2个版本:log4j 1.x 和log4j 2.x,目前官方主推2.x版本(log4j 1.x已于2015.0 ...

  9. 通过修改配置文件修改MySQL的时区设置

    一.找到my.ini文件 二.将时区改为东八区 添加:default-time-zone='+08:00'

  10. ****** 二十八 ******、软设笔记【数据库】-分布式数据库、特点、数据存储、DBMS组成

    分布式数据库    一.分布式数据库        分布式数据库由一组数据组成,这些数据物理上分布在计算机网络的不同结点(场地)上,逻辑上是属于同一个系统.每个结点可以执行局部应用,也能通过网络通信子 ...