Python Flask框架学习笔记7
创始人
2025-05-29 14:14:41
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可以查看。

相关内容

热门资讯

合肥剑桥学校中考录取分数线,最... 合肥剑桥学校中考录取分数线,最新或2023(历届)合肥剑桥学校中考分数线合肥剑桥学校录取分数线(统招...
最新或2023(历届)云浮所有... 【广东邓发纪念中学】学校电话:0766-8812793学校地址:广东省云浮市云城区云城街河滨西路11...
合肥世界外国语学校中考录取分数... 合肥世界外国语学校中考录取分数线,最新或2023(历届)合肥世界外国语学校中考分数线合肥世界外国语学...
最新或2023(历届)揭阳所有... 普宁市实验中学电话:0663-2686060邮编:515344地址:普宁市燎原镇乌石普宁市大坪中学电...
最新或2023(历届)潮州所有... 太阳教育网中国示范性高中信息库最新发布最新或2023(历届)潮州市重点高中人气排行榜,其中,潮州市高...
最新或2023(历届)蚌埠中考... 一、报名条件参加中考的考生应为初中毕业生或具有同等学力者。具有蚌埠市户籍的应、最新或2023(历届)...
最新或2023(历届)蚌埠中考... 各县(区)教体局(社会事业局)、市区各初中学校(含完中): 根据市教育局《关于将初中地理和生物...
最新或2023(历届)蚌埠中考... 最新或2023(历届)蚌埠市中考报名工作日程日程工作内容3月上旬1、研究拟定全市中考报名工作文件、电...
最新或2023(历届)蚌埠市中... 最新或2023(历届)年蚌埠市中考报名点代码表区学校名称学校代码行政区学校名称学校代码蚌埠市(蚌山区...
最新或2023(历届)蚌埠中考... 报名办法(一)、考生的报名资格审查工作由市、县招生考试部门组织实施。各初中学校(含完中)必须加强对考...
最新或2023(历届)蚌埠中考... 最新或2023(历届)蚌埠中考体育考试规则和评分标准(一)考试规则1.耐力跑(男生1000米、女生8...
最新或2023(历届)蚌埠中考... (3)各学科分值:语文150分,数学150分,英语150分(其中听力测试30分),思想品德与历史合卷...
最新或2023(历届)安徽所有... 最新或2023(历届)5月31日,艾瑞深中国校友会网最新发布《最新或2023(历届)中国高考状元调查...
最新或2023(历届)合肥所有... 百年教育网中国示范性高中信息库最新发布最新或2023(历届)合肥市重点高中人气排行榜,其中,合肥市第...
最新或2023(历届)芜湖所有... 芜湖市高中排名:芜湖市省级示范高中有哪些学校呢?下面太阳教育网给大家整理芜湖市省级示范高中学校榜单,...
最新或2023(历届)马鞍山所... 鞍山市高中排名:马鞍山市省级示范高中有哪些学校呢?下面太阳教育网给大家整理马鞍山市省级示范高中学校榜...
最新或2023(历届)蚌埠所有... 太阳教育网中国示范性高中信息库最新发布最新或2023(历届)蚌埠市重点高中人气排行榜,其中,安徽省怀...
最新或2023(历届)淮南所有... 太阳教育网中国示范性高中信息库最新发布最新或2023(历届)淮南市重点高中人气排行榜,其中,凤台县第...
最新或2023(历届)铜陵所有... 百年教育网中国示范性高中信息库最新发布最新或2023(历届)铜陵市重点高中人气排行榜,其中,安徽省铜...
最新或2023(历届)淮北所有... 百年教育网中国示范性高中信息库最新发布最新或2023(历届)淮北市重点高中人气排行榜,其中,安徽省淮...