python - 使用Flask 构建Web应用程序

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}!'

''''''

  1. @app.route('/'): 当用户访问根路径("/")时,执行home函数,该函数通过render_template将一个名为'form.html'的模板渲染并返回。这通常用于显示一个包含表单的页面。

  2. @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的基础使用方法。随着应用程序的增长,你可能会涉及到更多的主题,如数据库集成、用户认证等

          

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值