flask做一个登录注册的代码,带有mysql数据库,数据库通过SQLAlchemy实现
时间: 2024-05-15 16:18:33 浏览: 103
好的,我可以为您提供参考代码,如下所示:
```python
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
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)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = User(username=username, password=password)
db.session.add(user)
db.session.commit()
return redirect(url_for('login'))
return render_template('register.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
user = User.query.filter_by(username=username).first()
if user and user.password == password:
return redirect(url_for('dashboard'))
return render_template('login.html')
@app.route('/dashboard')
def dashboard():
return render_template('dashboard.html')
if __name__ == '__main__':
app.run(debug=True)
```
在这里,我们使用 Flask 构建应用程序,使用 SQLAlchemy 进行数据库操作和数据模型定义。`User` 模型定义了 `id`、`username` 和 `password` 字段。在 `register` 视图函数中,我们接收 POST 请求并使用传递的表单数据创建 User 对象。在 `login` 视图函数中,我们确保用户输入的用户名和密码与数据库中的 User 模型匹配,如果匹配成功,我们将用户重定向到仪表板。此外,在 `config` 中,我们指定了连接到 MySQL 数据库的参数。
您可以将此代码放入 `app.py` 文件中并使用以下命令运行应用程序:
```
$ export FLASK_APP=app.py
$ flask run
```
在浏览器中开始 `http://localhost:5000` 以查看启动的应用程序。
阅读全文