flask后台开发之数据库交互
生活随笔
收集整理的這篇文章主要介紹了
flask后台开发之数据库交互
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一、前言
- 二、環境安裝
- 1、安裝Python與SQL進行交互的庫
- 2、使用docker搭建mysql服務
- 三、用Python連接mysql
- 四、與數據庫的交互
- 1.創建表
- 2.刪除表
- 3.插入數據
- 4.查數據
- 5.更改數據
- 6.刪除數據
一、前言
flask官網:http://www.pythondoc.com/flask/tutorial/schema.html
flask_sqlalchemy:https://flask-sqlalchemy.palletsprojects.com/en/2.x/
我們在后臺開發過程中,不可避免的要與數據庫進行交互,flask這種輕巧的web框架提供了許多與數據庫交互的方法,本次使用flask_sqlalchemy與mysql進行交互
二、環境安裝
1、安裝Python與SQL進行交互的庫
pip install flask_sqlalchemy pip install pymysql2、使用docker搭建mysql服務
docker run -d --name=mysql -v ${PWD}/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7 --character-set-server=utf8 --collation-server=utf8_general_ci- run 表示實例一個容器
- d 表示以后臺運行
- –name 表示容器名字為mysql
- -v 表示掛載一個目錄與容器內部進行連接
- -p 指定端口(宿主機端口:容器端口)
- MYSQL_ROOT_PASSWORD=123456 設置mysql root的密碼為123456
- –character-set-server=utf8 --collation-server=utf8_general_ci 指定儲存的編碼格式為 UTF-8
使用Navicat連接數據庫
三、用Python連接mysql
from flask import Flask from flask_sqlalchemy import SQLAlchemy # 導入flask-sqlalchemy# 實例化flask一個實例 app = Flask(__name__) username = "root" pwd = "123456" ip = "121.7.134.168" port = 3306 database = "data" # 創建數據庫的連接 app.config["SQLALCHEMY_DATABASE_URI"] = f'mysql+pymysql://{username}:{pwd}@{ip}:{port}/{database}?charset=utf8' app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True # 將flask實例對象與SQLAlchemy綁定 db = SQLAlchemy(app)# 類 = 表名 ,類是大寫,表是小寫 切 _ 隔開class User(db.Model):id = db.Column(db.Integer, primary_key=True) # primary_key 表示會否為主鍵,主鍵是唯一的# unique表示會否允許重復出現,nullable表示會否允許為空name = db.Column(db.String(80), unique=True, nullable=False)email = db.Column(db.String(120), unique=True, nullable=False)sex = db.Column(db.String(12))def __repr__(self):return '< User % r>' % self.name四、與數據庫的交互
1.創建表
# 新建表db.create_all()2.刪除表
# 刪除表 db.drop_all()3.插入數據
# 增user1 = User(id=1, name="張一", email="11@qq.com", sex="男") # 以鍵值對形式插入數據user2 = User(id=2, name="張二", email="22@qq.com", sex="男")user3 = User(id=3, name="張三", email="33@qq.com", sex="女")# # 第一種方法-增加單條數據db.session.add(user1)# # 第二種方法-增加多條數據db.session.add_all([user2, user3]) # 添加到緩存中,類似于git add和commitdb.session.commit() # 提交 類似于git push4.查數據
第一種方法
res = User.query.filter_by(id=1).first() # 查單條print(res.id, res.name, res.sex, res.email)res_all = User.query.all() # 查所有的數據print(res_all)res = User.query.filter_by(id=1).first()
通過表名調用query方法,再去通過id的值進行過濾,查出來的結果的第一條數據
…
res_all = User.query.all() 表示通過表名調用query的方法,查詢所有的結果
控制臺打印結果:
1 張一 男 11@qq.com [< User '張一'>, < User '張二'>, < User '張三'>]Process finished with exit code 0第二種方法
# 第二種 使用db.session 來查詢res = db.session.query(User.name, User.email, User.sex, User.id).filter_by(id=2).first()# print(res)控制臺打印結果:
('張二', '22@qq.com', '男', 2)Process finished with exit code 05.更改數據
# 第一種方法res = User.query.filter_by(id=1).first() # 獲取單條數據的對象實例res.sex = "女" # 更改字段信息db.session.commit() # 提交至數據庫# 第二種方法User.query.filter_by(id=2).update({"name": "張小二"})db.session.commit()6.刪除數據
# 刪User.query.filter_by(id=3).delete()db.session.commit()總結
以上是生活随笔為你收集整理的flask后台开发之数据库交互的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R02-javaWeb-ServletC
- 下一篇: mysql 高并发 响应时间_高并发,你