面经分享(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

海鲜市场

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

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

相关文章

Revit模型进入虚幻引擎UE5教程

一、背景 小伙伴们是否有Revit进入虚幻引擎交互的需求呢? 二、实现功能 1.Revit进入虚幻UE5,包含模型属性,材质等 2.实现BIM构件点选,高亮,属性展示 3.实现BIM模型分层显示,爆炸等效果 三、教程地址 教程&#x…

深入探索MySQL:成本模型解析与查询性能优化,及未来深度学习与AI模型的应用展望

码到三十五 : 个人主页 在数据库管理系统中,查询优化器是一个至关重要的组件,它负责将用户提交的SQL查询转换为高效的执行计划。在MySQL中,查询优化器使用了一个称为“成本模型”的机制来评估不同执行计划的优劣,并选择…

HTML基础知识详解(上)(如何想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言:在学习前端基础时,必不可少的就是三大件(html、css、javascript ),而HTML(超文本标记语言——HyperText Markup Language)是构成 Web 世界的一砖一瓦,它定义了网页内容的含义和…

海外媒体发稿:旅游业媒体推广15种令人惊叹的效果-华媒舍

旅游业的媒体推广效果变得越来越重要。本文将介绍15种令人惊叹的旅游业媒体推广效果,并揭示背后的市场规律。让我们一起来了解吧! 1. 线上旅游平台 线上旅游平台,如Booking、TripAdvisor等,提供了便捷的旅游信息搜索和预订服务。…

02-JDK新特性-函数式接口

函数式接口 什么是函数式接口 函数式接口(Functional Interface)就是有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。 函数式接口可以被隐式转换为 Lambda 表达式。 我们可以在一个接口上使用 FunctionalInterface 注解,这样做可以检查它是否是…

51单片机入门_江协科技_21.2_74HC595 在Proteus中模拟8x8点阵屏环境搭建

1. 为了在proteus中模拟学习江协科技51单片机教程,需要在proteus中搭建74HC595驱动8x8点阵屏的仿真环境; 1.1. 因为连接单片机P0口作为点阵屏负极(行选),所以需要先在P0口上接上上拉电阻RESPACK 8,1k欧姆阻…

单细胞RNA测序(scRNA-seq)SRA数据下载及fastq-dumq数据拆分

单细胞RNA测序(scRNA-seq)入门可查看以下文章: 单细胞RNA测序(scRNA-seq)工作流程入门 单细胞RNA测序(scRNA-seq)细胞分离与扩增 1. NCBI查询scRNA-seq SRA数据 NCBI地址: https…

【React】React18+Typescript+craco配置最小化批量引入Svg并应用的组件

React18Typescriptcraco配置最小化批量引入Svg并应用的组件 前言创建React Typescript项目通过require.context实现批量引入Svg安装[types/webpack-env](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/README.zh-Hans.md)解决类型报错安装[craco](https://…

力扣---旋转链表

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3]示例 2: 输入:head [0,1,2], k 4 输出:[2,0,1…

如何将本地仓库放到远程仓库中

在我们仓库创建好之后&#xff0c;我们复制好ssh 接着我们需要使用git remote add<shortname><url>这个命令 shortname就是我们远程仓库的别名 接着使用git remote -v这个命令查看一下目前远程仓库的别名和地址 原本还有一个指令git branch -M main 指定分支的名…

鸿蒙开发第一课-工具与HelloWorld

武汉数字人才实训基地 一、初始HarmonyOS以及DevEco Studio 2023年8月4日&#xff0c;HarmonyOS 4.0操作系统正式发布。华为鸿蒙Next&#xff08;HarmonyOS Next&#xff09;操作系统开发者预览版(Developer Preview)发布。超过7亿台设备搭载了HarmonyOS 系统 2024年&#xf…

基于java web的超市管理系统

摘要 随着社会经济的不断发展&#xff0c;人们的生活水平不断提高。越来越多的零售行业得到了快速的发展&#xff0c;以最常见的超市最为明显。零售行业繁荣的背后也随之带来了许多行业隐患&#xff0c;越来越激烈的行业竞争不断的要求经营者更加高要求的管理超市内部的整个供…