Python Flask框架学习笔记5
创始人
2025-05-31 18:52:54
0

1、Flask数据库:

数据库已安装成功。

 mysql可以自己查CSDN的操作进行安装。

2、Flask连接数据库:

Flask想要操作数据库,必须先安装python操作mysql的驱动。目前驱动包:

1)MySQL-python:MySQLdb,是C语言操作MySQL数据库的一个简单的封装。只支持Python2.

 2)mysqlclient: 支持python3,并修复了一些bug。是目前为止执行效率最高的驱动,安装的时候容易因为环境问题而出错。

3)pymysql: 纯Python实现的一个驱动,执行效率不如mysqlclient,但是和Python代码无缝衔接。

4)  mysql-connector-python: MySQL官方推荐的纯Python连接mysql的驱动。

安装pymysql:

Flask-SQLAlchemy:

在Flask中,我们很少会使用pymysql直接写原生的SQL语句去操作数据库,更多的是通过SQLAlchemy提供的ORM技术,类似操作普通Python对象一样去操作数据库的增删改查操作。而Flask-SQLAlchemy是对SQLAlchemy的一个封装,使得在Flask中使用SQLAlchemy更加方便。

pip install flask-sqlalchemy

Flask-SQLAlchemy基本使用:

from flask import Flask
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)HOSTNAME = "127.0.0.1"
PORT = 3306
USERNAME = "root"
PASSWORD = "123456"
DATABASE = "database_learn"app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8"# 在app.config设置好连接数据库的信息
# 然后使用SQLAlchemy(app)创建一个db对象
# SQLAlchemy会自动读取app.config中连接数据库的信息db = SQLAlchemy(app)with app.app_context():with db.engine.connect() as conn:rs = conn.execute(SQLAlchemy().text("select 1"))print(rs.fetchone())@app.route("/")
def hello_world():return 'hello world!'if __name__ == '__main__':app.run(debug=True)

 

 这是创建数据库连接。

或者更改代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import textapp = Flask(__name__)HOSTNAME = "127.0.0.1"
PORT = 3306
USERNAME = "root"
PASSWORD = "123456"
DATABASE = "database_learn"app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8"# 在app.config设置好连接数据库的信息
# 然后使用SQLAlchemy(app)创建一个db对象
# SQLAlchemy会自动读取app.config中连接数据库的信息db = SQLAlchemy(app)with app.app_context():with db.engine.connect() as conn:rs = conn.execute(text("select 1"))print(rs.fetchone())@app.route("/")
def hello_world():return 'hello world!'if __name__ == '__main__':app.run(debug=True)

ORM模型与表的创建:

ORM是对象关系映射,是一种可以用Python面向对象的方式来操作关系型数据库的技术。具有可以映射到数据库表能力的Python类我们称之为ORM模型。一个ORM模型和数据库中的一个表对应。

ORM技术提供了面向对象与SQL交互的桥梁,让开发者用面向对象的方式来操作数据库。

特点:开发效率高、安全性高、灵活性强。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import textapp = Flask(__name__)HOSTNAME = "127.0.0.1"
PORT = 3306
USERNAME = "root"
PASSWORD = "123456"
DATABASE = "database_learn"app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8"# 在app.config设置好连接数据库的信息
# 然后使用SQLAlchemy(app)创建一个db对象
# SQLAlchemy会自动读取app.config中连接数据库的信息db = SQLAlchemy(app)# with app.app_context():
#     with db.engine.connect() as conn:
#         rs = conn.execute(text("select 1"))
#         print(rs.fetchone())class User(db.Model):__tablename__ = 'user'id = db.Column(db.Integer, primary_key=True, autoincrement=True)username = db.Column(db.String(100), nullable=False)password = db.Column(db.String(100), nullable=False)# user = User(username="zhangsan", password="111111")
# sql: insert user(username, password) valus('zhangsan', '1111111')
with app.app_context():db.create_all()@app.route("/")
def hello_world():return 'hello world!'if __name__ == '__main__':app.run(debug=True)

那这段代码就将表创建起来了,通过navicat可以查看。

相关内容

热门资讯

原创 杰... 财经摆渡人 精研出品 破浪前行,共探财富新局 大家好欢迎收看【古今财鉴】 2026年1月12日,北交...
突发特讯!马克龙回应美国关税威... 一场关税威胁,让美欧盟友关系再度紧绷。当地时间1月18日,法国总统马克龙针对美国的关税胁迫作出首次官...
原创 2... 彩排路透一曝光,镜头扫过那个圆乎乎的身影,弹幕瞬间分成了两派。一边开始吐槽:怎么又是他了?另一边则是...
内部炸锅!追觅员工怒怼CEO“... 来源:21ic电子网 快科技 近日,有员工在追觅科技智能汽车项目的千人大群里,直怼俞浩和陈龙冬的聊天...
兴业银行成功发行首单自贸区主体... 1月15日,兴业银行(601166.SH)在全市场首次以“玉兰债”模式发行银行自贸区主体境外债券,发...
印度对华出口激增67%,对美出... 参考消息网1月16日报道据美国消费者新闻与商业频道网站1月16日报道,随着美国总统特朗普加征的高额关...
投资前瞻(1.19—1.25)... 重点关注: ·央行连续第8个月通过买断式逆回购向市场注入中期流动性。 ·“十五五”期间电网投资计划比...
肿瘤科医生提醒:如果你属于这 ... 在所有常见肿瘤中,结直肠癌(也就是大家常说的“肠癌”)其实是个很“矛盾”的存在。一方面,它的发展速度...
九龙县多维发力激活电商发展新动... 01 “一村一主播”育才强基 紧扣高原农特产品上行需求,构建“基础培训、实战演练、创业孵化”三级体系...
原创 美... 编辑:[微风] 最近,美国华盛顿的那些决策者总算幡然醒悟了,他们从2018年就开始打主意,想通过贸易...
马斯克点火全球最大超算,首个1... 全球首个吉瓦级训练集群! 马斯克一早激动官宣,专为训下一代Grok打造的「超算巨兽」Colossus...
原创 A... 近期A股市场的走势,让不少股民直呼“心塞”!明明大盘一度强势上攻、站稳4100点之上,市场情绪看似回...
拿下1200亿锂电大单?容百科... 据证监会官网,2026年1月14日,宁波容百新能源科技股份有限公司(简称容百科技)披露日常经营重大合...
原创 3... 从《玫瑰的故事》到《花木兰》,从红毯上的璀璨光芒到时尚大片的优雅姿态,38岁的刘亦菲始终是「冻龄女神...
多晶硅急速遇冷:会成为下一个动... 记者 邹永勤 俗语说“三十年河东,三十年河西”,但对于多晶硅而言,这个转换周期可能只需要半年。 在2...
我国海上风电规模持续增长 上市... 1月15日,国家电网数据显示,截至2025年年底,长三角地区海上风电并网规模超1900万千瓦,成为全...
603273,董事长被留置! 天元智能公司实控人、董事长兼总经理吴逸中被留置。 1月16日,天元智能发布公告,公司拟向全体股东每...
5成A股上市公司披露ESG,谁... 近年来,中国企业正加速拥抱可持续发展理念,ESG也不再是“加分项”,而是成为企业高质量发展的“必答题...
原创 昔... 华尔街“倒戈”:AI不是蜜糖,反成增长毒药? Adobe最近的股价走势,和整个科技股的热火朝天形成...
亏损延续!大智慧2025年净利... 1月16日,大智慧(601519)公告,经财务部门初步测算,预计2025年年度实现归属于母公司所有者...