面经分享(Flask,轻量级Web框架)

1. Flask的核心特点

a. 轻量级:核心简洁,只提供了基本的功能,其他高级功能可以通过插件或扩展来添加。
b. 灵活性:允许开发者选择适合自己项目的组件和工具,没有强制的项目结构和设计模式。
c. 易于扩展:提供了丰富的扩展和插件生态系统,可以方便地添加新功能和集成其他工具。

2. Flask中如何处理路由和URL映射?

a. 使用装饰器@app.route来定义路由和URL映射。通过将URL路径和HTTP方法与相应的视图函数关联起来,Flask能够根据请求的URL找到对应的视图函数并执行。
b. 定义了两个路由:根路由 (“/”) 和 “/about”。每个路由都对应一个视图函数,当用户访问相应的URL时,Flask会调用对应的视图函数并返回结果。
c. 这个例子中,当用户访问根路由 (“/”) 时,视图函数 index() 返回 “Hello, World!”。当用户访问 “/about” 路由时,视图函数 about() 返回 “This is the about page.”。

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, World!"

@app.route("/about")
def about():
    return "This is the about page."

if __name__ == "__main__":
    app.run()

3. Flask表单验证和数据校验

a. 首先定义一个LoginForm类,继承自FlaskForm。在LoginForm中,定义两个字段email和password,并分别使用StringField和PasswordField定义对应的表单字段。使用validators参数来指定字段的验证规则,例如DataRequired()表示字段不能为空,Email()表示字段必须是合法的Email格式,Length(min=6)表示字段的长度至少为6。
b. 在login()视图函数中,首先实例化LoginForm类得到一个表单对象form。然后通过form.validate_on_submit()判断是否有POST请求并且数据验证通过。如果验证通过,可以从form对象中获取用户输入的数据,进行登录逻辑的处理。
c. 使用render_template函数将表单对象form传递给模板login.html,以便在模板中渲染表单。可以使用form.email、form.password等属性来渲染表单字段,也可以使用form.submit来渲染提交按钮。

from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Email, Length

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'

class LoginForm(FlaskForm):
    email = StringField('Email', validators=[DataRequired(), Email()])
    password = PasswordField('Password', validators=[DataRequired(), Length(min=6)])
    submit = SubmitField('Submit')

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # 处理登录逻辑
        email = form.email.data
        password = form.password.data
        # ... 在这里进行验证和处理逻辑 ...
        return f'Logged in with email: {email}'

    return render_template('login.html', form=form)

if __name__ == '__main__':
    app.run()

互联网大厂测开经历,目前担任测试开发负责人,每天分享互联网面经,如果你有测试相关的问题,欢迎咨询,海鲜市场【简历优化】、【就业指导】、【模拟/辅导面试】,已辅导20位以上同学拿到心仪offer

海鲜市场

相关推荐

  1. Python实战:Flask轻量级web框架入门

    2024-04-03 09:28:01       46 阅读
  2. 【python】Flask Web框架

    2024-04-03 09:28:01       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 09:28:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 09:28:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 09:28:01       82 阅读
  4. Python语言-面向对象

    2024-04-03 09:28:01       91 阅读

热门阅读

  1. whisper-v3模型部署环境执行

    2024-04-03 09:28:01       39 阅读
  2. HTML/XML转义字符对照

    2024-04-03 09:28:01       38 阅读
  3. CSS世界Ⅰ

    2024-04-03 09:28:01       49 阅读
  4. Github 2024-04-03 C开源项目日报 Top10

    2024-04-03 09:28:01       40 阅读
  5. 【报错】Device /dev/ttyUSB0 is locked.

    2024-04-03 09:28:01       33 阅读
  6. 2.3.16、wc:统计文本

    2024-04-03 09:28:01       34 阅读
  7. 【蓝桥杯每日一题】4.2 全球变暖

    2024-04-03 09:28:01       36 阅读