您的位置:首页 > 游戏 > 游戏 > flask+mysql入门案例

flask+mysql入门案例

2024/12/23 16:17:20 来源:https://blog.csdn.net/svygh123/article/details/140404447  浏览:    关键词:flask+mysql入门案例

在 Flask 中集成 MySQL 数据库进行用户管理是一个常见的项目需求。下面将提供一个基础的步骤和代码示例来理解如何从零开始搭建这样一个系统。

1. 环境准备

首先确保你已经安装了 Python 和必要的包。你需要安装 Flask 和用于连接 MySQL 的包 Flask-SQLAlchemy 或者 Flask-Mysqldb。这里我们使用 Flask-SQLAlchemy,因为它提供了更高级的对象关系映射(ORM)功能。

在你的终端中运行以下命令来安装必要的包:

pip install flask flask-sqlalchemy

2. 创建项目结构

假设你的项目目录如下:

my_flask_app/app.pystatic/templates/myapp/__init__.pymodels.pyforms.pyroutes.py

3. 配置 Flask 应用

app.py 文件中设置 Flask 应用和数据库配置:

from flask import Flask
from myapp import modelsapp = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falsemodels.db.init_app(app)if __name__ == '__main__':with app.app_context():models.db.create_all()app.run(debug=True)

4. 定义模型

models.py 中定义你的数据库模型:

from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash, check_password_hashdb = SQLAlchemy()class User(db.Model):id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(80), unique=True, nullable=False)password = db.Column(db.String(120), nullable=False)def set_password(self, password):self.password = generate_password_hash(password)def check_password(self, password):return check_password_hash(self.password, password)

5. 创建表单

forms.py 中使用 WTForms 创建表单:

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Length, ValidationError
from myapp.models import Userclass RegistrationForm(FlaskForm):username = StringField('Username', validators=[DataRequired(), Length(min=4, max=80)])password = PasswordField('Password', validators=[DataRequired()])submit = SubmitField('Register')def validate_username(self, username):user = User.query.filter_by

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com