1、首先安装 Flask Flask-WTF schedule库
方法:pip install Flask Flask-WTF schedule
Flask Flask-WTF schedule库介绍: Flask 是一款简洁而灵活的Python Web框架,广泛应用于构建各种类型的Web应用程序
2、 Flask基础用法
(1)创建一个简单的flask应用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run(debug=True)
(2)运行运用
python your_app_name.py
访问 http://127.0.0.1:5000/ 就能看到 'Hello, Flask!'。
(3)创建更复杂的路由
知识补充:
在Flask中,路由定义了用户访问Web应用时,不同URL路径应该触发的不同处理函数。简而言之,路由将URL映射到相应的处理函数,从而决定了用户访问特定路径时应该执行哪些代码。
在Flask中,通过使用@app.route()
装饰器来定义路由。这个装饰器告诉Flask应用程序,当用户访问指定的URL路径时,应该执行下面的函数。
@app.route()
还支持一些可选参数,如下:
-
methods
: 指定允许的HTTP请求方法,默认为['GET']
。例如,methods=['GET', 'POST']
表示这个路由可以处理GET和POST请求。 -
defaults
: 一个字典,用于指定参数的默认值。例如,defaults={'id': 1}
表示如果请求中没有提供id参数,那么id将默认为1。 -
strict_slashes
: 如果为True(默认值),在URL结尾有斜杠时,Flask会自动重定向到没有斜杠的路径。如果为False,Flask会保留原始路径。例如,/example/
将重定向到/example
(如果strict_slashes=True
)。 -
endpoint
: 为路由指定一个唯一的名称,以便在应用中其他地方引用。默认情况下,Flask使用函数的名称作为端点。例如,endpoint='custom_endpoint'
。
Flask中的路由是定义在URL上执行的函数。例,你可以创建一个动态路由:
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
详细解释:
# app.py
from flask import Flask #导入Flask类,这是构建Web应用程序的核心
app = Flask(__name__) # 创建一个Flask应用实例。__name__
参数用于确定应用程序的根路径。
@app.route('/') #定义一个路由,表示当用户访问根路径("/")时,将执行下面的hello_world
函数
def hello_world(): #定义了一个名为hello_world
的函数,该函数返回一个简单的字符串 "Hello, World!"。
return 'Hello, World!'
@app.route('/user/<username>')
#定义另一个路由,表示当用户访问形如 "/user/xxx" 的路径时,将执行下面的show_user_profile
函数,其中 <username>
是一个动态参数,它将传递给show_user_profile
函数。
def show_user_profile(username): #定义了一个名为show_user_profile
的函数,该函数接收一个username
参数,然后返回一个包含用户名称的字符串。
return f'User {username}'
在这个例子中,访问http://127.0.0.1:5000/user/john
将显示 "User john"。
这个简单的应用程序有两个路由:一个是根路径("/"),返回 "Hello, World!";另一个是 "/user/xxx",其中 "xxx" 是动态的用户名,返回 "User xxx"
(4)添加模板(默认情况下,Flask使用Jinja2作为模板引擎。你可以在Jinja2的官方文档中找到有关模板语法和功能的详细信息https://jinja.palletsprojects.com/en/3.1.x/templates/)
Flask支持使用模板引擎渲染动态内容。创建一个名为templates
的文件夹,并在其中添加一个HTML文件,例如index.html
<!-- templates/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask App</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
然后,在Flask应用中使用模板:
# app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html', name='World')
在Flask中,render_template
是一个用于渲染HTML模板的函数。它允许你将动态生成的数据嵌入到HTML文件中,以便最终在用户的浏览器中呈现。
(5)处理表单提交
Flask可以轻松处理HTML表单的提交。首先,创建一个包含表单的HTML页面
<!-- templates/form.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Form</title>
</head>
<body>
<form action="/process_form" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required>
<br>
<input type="submit" value="Submit">
</form>
</body>
</html>
然后,在Flask应用中处理表单提交:
# app.py
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def home():
return render_template('form.html')
@app.route('/process_form', methods=['POST'])
def process_form():
username = request.form['username']
return f'Thank you, {username}!'
''''''
-
@app.route('/')
: 当用户访问根路径("/")时,执行home
函数,该函数通过render_template
将一个名为'form.html'的模板渲染并返回。这通常用于显示一个包含表单的页面。 -
@app.route('/process_form', methods=['POST'])
: 当用户通过POST请求访问路径"/process_form"时,执行process_form
函数。这个路由通常用于处理表单提交。函数使用request
对象获取通过表单提交的数据,具体来说是获取名为'username'的表单字段的值。然后,它返回一条包含感谢消息和用户名的字符串。
整体流程:
- 用户访问根路径,看到包含表单的页面。
- 用户在表单中输入用户名并提交。
- 表单数据通过POST请求发送到路径"/process_form"。
process_form
函数处理表单数据,提取用户名,并返回感谢消息。
在实际应用中,你需要在项目文件夹中创建一个templates
文件夹,并在其中添加名为'form.html'的模板文件。这个模板文件通常包含一个HTML表单,用于用户输入信息。在上述代码中,form.html
模板文件的内容未提供,但你需要确保模板文件中包含必要的HTML和表单元素。
此外,确保在Flask应用运行时,通过运行python your_app.py
(其中your_app.py
是包含上述代码的文件)启动应用。
这只是Flask的基础使用方法。随着应用程序的增长,你可能会涉及到更多的主题,如数据库集成、用户认证等