Flask入门教程:从零开始学习Flask框架
Flask是一个轻量级的Python Web框架,它基于Werkzeug和Jinja2构建,非常适合快速开发小型的Web应用程序。本教程将带你从零开始学习如何使用Flask框架,并提供一些使用例子来帮助你更好地理解。
1. 安装Flask
首先,你需要安装Flask。你可以使用pip命令在命令行中安装Flask:
pip install flask
2. 创建一个简单的Flask应用
创建一个名为app.py的文件,然后输入以下代码:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Flask!"
if __name__ == "__main__":
app.run()
这个简单的应用定义了一个根路由“/”,当你访问这个路由时,会返回一个"Hello, Flask!"的字符串。
3. 运行应用
在命令行中运行以下命令启动应用:
python app.py
你会看到输出的网址,默认为http://127.0.0.1:5000/。在浏览器中打开这个地址,你将看到"Hello, Flask!"的字符串。
4. 动态路由
Flask支持使用动态路由来接收不同的URL参数。修改app.py文件,添加如下代码:
@app.route("/user/<username>")
def show_user(username):
return f"User: {username}"
@app.route("/post/<int:post_id>")
def show_post(post_id):
return f"Post ID: {post_id}"
这样,当你访问类似于/user/john这样的URL时,将会显示"User: john";而访问类似于/post/123这样的URL时,将会显示"Post ID: 123"。
5. 模板渲染
Flask使用Jinja2模板引擎来将数据渲染到HTML模板中。创建一个名为templates的文件夹,在其中创建一个名为index.html的文件,输入以下代码:
<!DOCTYPE html>
<html>
<head>
<title>Flask Tutorial</title>
</head>
<body>
<h1>{{ title }}</h1>
<p>Welcome to Flask tutorial!</p>
</body>
</html>
修改app.py文件,添加如下代码:
from flask import render_template
@app.route("/")
def home():
return render_template("index.html", title="Flask Tutorial")
这个例子就是将Flask应用返回的数据渲染到HTML模板中,然后将渲染的结果返回给浏览器显示。
6. 表单处理
Flask提供了简便的表单处理功能。修改app.py文件,添加如下代码:
from flask import request, redirect, url_for
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
username = request.form["username"]
password = request.form["password"]
# 这里可以添加登录逻辑
return redirect(url_for("profile", username=username))
return render_template("login.html")
创建一个名为login.html的HTML文件,输入以下代码:
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="{{ url_for('login') }}" method="post">
<input type="text" name="username" placeholder="Username"><br>
<input type="password" name="password" placeholder="Password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
这个例子演示了如何使用Flask处理表单提交,获取用户名和密码,并进行登录逻辑处理。
这只是Flask的入门教程的一部分,Flask还有很多其他功能和用法。你可以继续深入学习Flask,了解更多的功能和高级用法。希望这个简单的入门教程能够帮助你入门Flask框架。
