下面来详细讲解“一个基于flask的web应用诞生 flask和mysql相连(4)”的完整攻略,并且包含两条示例说明。
标题
一、前言
在建立web应用的时候,数据的处理是非常重要的一项任务,而flask本身只是一个web应用框架,并不具备直接处理关系型数据库的能力,需要借助mysql等数据库来进行数据的存取操作。而本篇攻略将讲解如何基于flask框架来实现与mysql数据库的连接,实现具有完整的CRUD操作的web应用。
二、主体
- 安装mysql
首先需要在本地机器上安装数据库,这里以mysql为例。可以从官网上下载相应版本的mysql即可,需要注意的是在mysql下载和安装完成后一定要打开mysql服务。
- 安装pymysql模块
为了能够在python代码中连接mysql数据库,需要安装pymysql模块。可以使用pip安装:
pip install pymysql
- 配置数据库
需要在flask应用中配置连接数据库的参数:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/database_name'
其中,username
是mysql数据库中的用户名,password
是mysql数据库中对应的密码,localhost
是数据库服务器的地址,database_name
是待连接的数据库名称。
- 编写数据模型
在应用中,需要定义好将来要使用的表结构。可以使用flask_sqlalchemy扩展来实现ORM(Object Relational Mapping),也可以直接使用mysql-connector-python库来操作数据,例如:
import pymysql
class Database:
def __init__(self):
self.host = "localhost"
self.user = "root"
self.password = ""
self.database = "test"
self.conn = pymysql.connect(self.host, self.user, self.password, self.database)
self.cursor = self.conn.cursor()
def list_all_users(self):
self.cursor.execute("SELECT * FROM users")
rows = self.cursor.fetchall()
return rows
def add_user(self, name, email, password):
self.cursor.execute("INSERT INTO users(name, email, password) VALUES(%s, %s, %s)", (name, email, password))
self.conn.commit()
- 建立API
通过flask框架中的路由装饰器建立相应的API。例如:
@app.route('/users', methods=['GET'])
def list_users():
db = Database()
users = db.list_all_users()
return jsonify(users)
@app.route('/users', methods=['POST'])
def add_user():
name = request.json['name']
email = request.json['email']
password = request.json['password']
db = Database()
db.add_user(name, email, password)
return jsonify({'result': 'success'})
以上两个API用来列出所有用户和添加新用户。
三、示例说明
在本篇攻略中,我们实现了一个基于flask的web应用,并且成功连接了mysql数据库。以下是两个示例:
- 列出所有用户
通过以下链接即可访问,其中host
是本地的ip地址,port
是监听的端口号。
http://host:port/users
- 添加新用户
通过以下命令可以向该web应用中添加新用户:
curl --location --request POST 'http://host:port/users' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Alice",
"email": "alice@example.com",
"password": "password"
}'
以上就是此篇攻略的完整过程和两个示例说明。
四、总结
本篇攻略详细介绍了一个基于flask的web应用诞生,其中通过mysql实现了完整的CRUD操作。在实现web应用的过程中,需要先在本地安装mysql,安装pymysql模块,配置连接mysql的参数,定义好将要使用的数据结构和建立相应的API。我们还通过两个示例来演示web应用的使用方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个基于flask的web应用诞生 flask和mysql相连(4) - Python技术站