返回
用Flask和Python建立前后端分离的数据库系统,实现轻松的数据管理
后端
2023-11-26 09:21:22
全栈开发:使用 Python 和 Flask 构建动态 Web 应用程序
揭开全栈世界的面纱
全栈开发是当今数字领域备受追捧的技能,它赋予开发者从前端界面到后端逻辑的全面开发能力,使他们能够独立完成 Web 应用程序的构建。为了满足这种需求,我们将踏上一个全栈开发之旅,使用 Python 和 Flask 构建一个用户管理系统,让你亲身体验前后端分离和数据库操作的魅力。
前后端分离:分而治之
前后端分离是一个巧妙的策略,将 Web 应用程序的视觉呈现(前端)与数据处理和业务逻辑(后端)分开。前端负责用户界面和交互,提供流畅的用户体验;而后端则专注于数据管理和应用程序的核心功能。
数据库操作:数据的基石
数据库是 Web 应用程序的基石,存储和管理着宝贵的用户数据。在我们的项目中,我们将利用 MySQL,一个流行且易于使用的关系型数据库,来安全可靠地存储用户信息。
构建用户管理系统
现在,让我们把理论付诸实践,创建一个用户管理系统。这个系统将包含用户注册、登录、修改和删除等基本功能。
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/database_name'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(255), unique=True)
password = db.Column(db.String(255))
email = db.Column(db.String(255))
@app.route('/')
def index():
users = User.query.all()
return render_template('index.html', users=users)
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
email = request.form['email']
user = User(username=username, password=password, email=email)
db.session.add(user)
db.session.commit()
return redirect(url_for('index'))
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('index'))
return render_template('login.html', error="Invalid credentials")
return render_template('login.html')
@app.route('/edit/<int:id>', methods=['GET', 'POST'])
def edit(id):
user = User.query.get(id)
if request.method == 'POST':
user.username = request.form['username']
user.password = request.form['password']
user.email = request.form['email']
db.session.commit()
return redirect(url_for('index'))
return render_template('edit.html', user=user)
@app.route('/delete/<int:id>')
def delete(id):
user = User.query.get(id)
db.session.delete(user)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
部署和测试:让你的应用栩栩如生
为了让我们的用户管理系统焕发生机,我们需要将其部署到服务器上并进行彻底的测试。以下命令将启动 Flask 服务器:
flask run
然后,在浏览器中访问 http://127.0.0.1:5000
来见证你的杰作。
常见问题解答
-
如何创建数据库表?
CREATE TABLE userinfo ( id INT NOT NULL AUTO_INCREMENT, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, PRIMARY KEY (id) );
-
如何使用 Flask 框架?
from flask import Flask, render_template, request, redirect, url_for app = Flask(__name__)
-
如何连接到 MySQL 数据库?
from flask_sqlalchemy import SQLAlchemy app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/database_name' db = SQLAlchemy(app)
-
如何使用 SQLAlchemy 操作数据库?
user = User.query.get(id) user.username = 'new_username' db.session.commit()
-
如何部署 Flask 应用程序?
flask run