引言
Flask 是一个轻量级的 Web 框架,基于 Python 语言编写,广泛应用于 Web 开发领域。它以其简洁、易用、可扩展性强等特点,受到众多开发者的喜爱。本文将通过一系列实战案例,带你轻松入门 Flask Web 开发。
一、环境搭建
1. 安装 Python
首先,确保你的计算机上安装了 Python。你可以从 Python 官网下载并安装最新版本的 Python。
2. 安装 Flask
安装 Flask 非常简单,只需使用 pip 命令即可:
pip install flask
二、创建 Flask 应用程序
1. 创建项目结构
创建一个名为 my_flask_app
的目录,并在其中创建以下文件和文件夹:
my_flask_app/
│
├── app.py
├── templates/
│ └── index.html
└── static/
└── style.css
2. 编写 Flask 应用程序
打开 app.py
文件,编写以下代码:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
3. 创建 HTML 模板
在 templates
文件夹中创建一个名为 index.html
的文件,编写以下代码:
<!DOCTYPE html>
<html>
<head>
<title>My Flask App</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<h1>Welcome to my Flask App!</h1>
</body>
</html>
4. 创建静态文件
在 static
文件夹中创建一个名为 style.css
的文件,编写以下代码:
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
}
三、运行 Flask 应用程序
在终端中,切换到 my_flask_app
目录,并运行以下命令:
python app.py
在浏览器中访问 http://127.0.0.1:5000/
,你将看到如下页面:
Welcome to my Flask App!
四、实战案例:用户注册与登录
1. 创建用户模型
首先,我们需要创建一个用户模型,用于存储用户信息。我们可以使用 Flask-SQLAlchemy 扩展来实现这一点。
pip install flask-sqlalchemy
在 app.py
文件中,添加以下代码:
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
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)
# 创建数据库表
db.create_all()
2. 创建注册和登录视图
在 app.py
文件中,添加以下代码:
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
new_user = User(username=username, password=password)
db.session.add(new_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, password=password).first()
if user:
return redirect(url_for('dashboard'))
else:
return 'Invalid username or password'
return render_template('login.html')
3. 创建 HTML 模板
在 templates
文件夹中创建 register.html
和 login.html
文件,分别编写以下代码:
<!-- register.html -->
<!DOCTYPE html>
<html>
<head>
<title>Register</title>
</head>
<body>
<h1>Register</h1>
<form method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Register</button>
</form>
</body>
</html>
<!-- login.html -->
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Login</button>
</form>
</body>
</html>
4. 运行 Flask 应用程序
运行 Flask 应用程序,并在浏览器中访问以下 URL:
- 注册:
http://127.0.0.1:5000/register
- 登录:
http://127.0.0.1:5000/login
完成注册和登录后,你可以访问仪表板页面:http://127.0.0.1:5000/dashboard
。
五、总结
通过本文的实战案例,你已成功入门 Flask Web 开发。接下来,你可以根据自己的需求,继续学习和探索 Flask 框架的其他功能,如路由、模板、数据库、表单验证等。祝你学习愉快!