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.py
    static/
    templates/
    myapp/
        __init__.py
        models.py
        forms.py
        routes.py

3. 配置 Flask 应用

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

from flask import Flask
from myapp import models

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

models.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_hash

db = 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 User

class 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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

svygh123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值