测试开发面经(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 Flaskapp = 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, Lengthapp = 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.datapassword = form.password.data# ... 在这里进行验证和处理逻辑 ...return f'Logged in with email: {email}'return render_template('login.html', form=form)if __name__ == '__main__':app.run()

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

简历修改119/次
模拟面试149/小时
测试开发工具指导149/小时

海鲜市场

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/601826.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

别再抱怨学鸿蒙没方向了! 这鸿蒙全栈(南北双向)开发学习路线收藏好!

在互联网技术不断发展的现在,鸿蒙操作系统的出现标志着是能技术领域的一次重大突破,鸿蒙作为华为推出的一代操作系统,鸿蒙不仅达代表了自主创新的力量,还因为独特的分布式架构和全场景适配能力而备受关注。随着鸿蒙生态的不断完善…

HarmonyOS 应用开发-边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库,只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器, OhosVideoCache就可以一边下载音视频数据并保存在本地,一边读取本地缓存返回给播放器,使用者无需进行其他操作…

OneFlow深度学习框架:技术优势与功能特点

文章目录 一、概要二、核心技术优势2.1、分布式训练2.2、极致性能2.3、端到端的智能数据平台2.4、开放灵活的算法支持2.5、跨平台支持 三、功能特点四、OneFlow与TensorFlow对比四、安装OneFlow五、总结 一、概要 OneFlow是一款基于Python的开源深度学习框架,旨在实…

[StartingPoint][Tier1]Pennyworth

Important Jenkins是一个用于自动化构建、测试和部署软件项目的开源持续集成和持续部署(CI/CD)工具。它允许开发团队自动执行和监控在软件开发过程中的重复性任务,例如构建代码、运行测试、部署应用程序等。Jenkins提供了一个易于使用的Web界…

Go协程池gopool源码解析

1、gopool简介 Repository:https://github.com/bytedance/gopkg/tree/develop/util/gopool gopool is a high-performance goroutine pool which aims to reuse goroutines and limit the number of goroutines. It is an alternative to the go keyword. gopool的…

Astra深度相机在Ubuntu18.04系统下实现相机标定

问题: 当使用Astra相机的启动的指令启动相机后,使用rviz查看相机所发布的rgb数据时,在终端会出现如下的提示信息: Camera calibration file /home/car/.ros/camera_info/rgb_Astra_Orbbec.yaml not found. Camera calibration fil…

HarmonyOS实战开发-如何实现跨应用数据共享实例。

介绍 本示例实现了一个跨应用数据共享实例,分为联系人(数据提供方)和联系人助手(数据使用方)两部分:联系人支持联系人数据的增、删、改、查等功能;联系人助手支持同步联系人数据,当…

Dubbo 序列化

Dubbo 序列化 1、什么是序列化和反序列化 序列化(serialization)在计算机科学的资料处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),…

HiveSQL之lateral view

lateral view是hiveQL中的一个高级功能,用于和表生成函数一起,来处理嵌套数组和结构的数据,特别是在处理复杂的数据结构如JSON或数组内嵌套数组时特别有用。它允许用户在每一行上应用TGF(表生成函数),将生成…

蓝桥杯刷题--RDay5

清理水域--枚举 8.清理水域 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/2413/learning/?page1&first_category_id1&second_category_id3&tags2023 小蓝有一个n m大小的矩形水域,小蓝将这个水域划分为n行m列,行数从1…

云计算(五)—— OpenStack基础环境配置与API使用

OpenStack基础环境配置与API使用 项目实训一 【实训题目】 使用cURL命令获取实例列表 【实训目的】 理解OpenStack的身份认证和API请求流程。 【实训准备】 (1)复习OpenStack的认证与API请求流程的相关内容。 (2)熟悉cURL…

CSS层叠样式表学习(基础选择器)

(大家好,今天我们将继续来学习CSS(2)的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 二、CSS基础选择器 2.1 CSS选择器的作用 2.2 选择器分类 2.3 标签选择器 2.…