首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[Mysql]掌握Flask,轻松连接MySQL:从入门到实战,高效构建Web应用

发布于 2025-07-01 19:25:11
0
387

引言Flask是一个轻量级的Web应用框架,使用Python编写,非常适合快速开发和部署Web应用。MySQL则是一个流行的开源关系型数据库管理系统。将Flask与MySQL结合使用,可以构建功能强大...

引言

Flask是一个轻量级的Web应用框架,使用Python编写,非常适合快速开发和部署Web应用。MySQL则是一个流行的开源关系型数据库管理系统。将Flask与MySQL结合使用,可以构建功能强大且性能稳定的Web应用。本文将带你从入门到实战,掌握如何使用Flask连接MySQL,并高效构建Web应用。

一、Flask入门

1.1 Flask简介

Flask是一个Python编写的Web应用框架,它是一个微框架,这意味着它只提供了Web开发的基础设施,而不包含特定的应用逻辑。Flask的设计理念是简单、易用,同时提供强大的扩展性。

1.2 安装Flask

在Python环境中安装Flask非常简单,使用pip命令即可:

pip install Flask

1.3 创建Flask应用

创建一个基本的Flask应用只需要几个步骤:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world(): return 'Hello, World!'
if __name__ == '__main__': app.run(debug=True)

这段代码创建了一个名为hello_world的函数,当访问根目录时,会返回“Hello, World!”。

二、MySQL入门

2.1 MySQL简介

MySQL是一个开源的关系型数据库管理系统,广泛用于各种Web应用。它使用SQL(结构化查询语言)进行数据操作。

2.2 安装MySQL

在Windows上,可以从MySQL官网下载安装程序进行安装。在Linux上,可以使用包管理器安装:

sudo apt-get install mysql-server

2.3 创建MySQL数据库

使用MySQL命令行工具创建一个数据库:

CREATE DATABASE mydatabase;

三、Flask连接MySQL

3.1 安装数据库驱动

为了在Flask中连接MySQL,需要安装一个数据库驱动。在Python中,可以使用mysql-connector-pythonPyMySQL

pip install mysql-connector-python

3.2 连接MySQL

以下是一个简单的示例,展示如何使用mysql-connector-python连接到MySQL数据库:

import mysql.connector
config = { 'user': 'your_username', 'password': 'your_password', 'host': 'localhost', 'database': 'mydatabase'
}
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
query = "SELECT * FROM mytable"
cursor.execute(query)
for row in cursor: print(row)
cursor.close()
cnx.close()

3.3 使用Flask-SQLAlchemy

Flask-SQLAlchemy是一个流行的ORM(对象关系映射)工具,可以简化数据库操作。首先,安装Flask-SQLAlchemy:

pip install Flask-SQLAlchemy

然后,在你的Flask应用中使用它:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your_username:your_password@localhost/mydatabase'
db = SQLAlchemy(app)
class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50))
# 创建数据库表
db.create_all()

四、实战:构建一个简单的博客应用

4.1 应用结构

一个简单的博客应用可能包含以下文件和目录:

/blog/ /static/ /templates/ app.py models.py forms.py

4.2 定义模型

models.py中定义模型:

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50))
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) body = db.Column(db.Text) author_id = db.Column(db.Integer, db.ForeignKey('user.id'))

4.3 创建表单

forms.py中创建表单:

from flask_wtf import FlaskForm
from wtforms import StringField, TextAreaField, SubmitField
from wtforms.validators import DataRequired
class PostForm(FlaskForm): title = StringField('Title', validators=[DataRequired()]) body = TextAreaField('Body', validators=[DataRequired()]) submit = SubmitField('Post')

4.4 创建路由和视图

app.py中创建路由和视图:

from flask import Flask, render_template, redirect, url_for
from .models import db, User, Post
from .forms import PostForm
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://your_username:your_password@localhost/mydatabase'
db = SQLAlchemy(app)
@app.route('/')
def index(): posts = Post.query.all() return render_template('index.html', posts=posts)
@app.route('/post/new', methods=['GET', 'POST'])
def new_post(): form = PostForm() if form.validate_on_submit(): post = Post(title=form.title.data, body=form.body.data) db.session.add(post) db.session.commit() return redirect(url_for('index')) return render_template('new_post.html', form=form)

4.5 创建模板

templates目录下创建HTML模板:

index.html



 Blog

 

Blog

    {% for post in posts %}
  • {{ post.title }}

    {{ post.body }}

  • {% endfor %}
New Post

new_post.html



 New Post

 

New Post

{{ form.hidden_tag() }} {{ form.title.label }} {{ form.title(size=30) }}
{{ form.body.label }} {{ form.body(rows=4) }}
{{ form.submit() }}

五、总结

通过本文的介绍,相信你已经掌握了如何使用Flask连接MySQL,并构建一个简单的博客应用。这只是Flask和MySQL结合使用的一个基础示例,你可以根据自己的需求进行扩展和优化。祝你构建出优秀的Web应用!

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流