Flask面试问题

这篇博客详细介绍了Flask框架的基础知识,包括其概念、优点、与Django的区别、Flask-WTF的用途,以及如何在Flask中处理会话、数据库连接、RESTful API和WSGI接口。同时,还讨论了Flask的蓝图、第三方组件使用、上下文管理流程以及多应用处理。此外,文章还涵盖了ORM的原理和Flask的默认session处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,什么是Flask,有什么优点?

概念解释

Flask是一个Web框架,就是提供一个工具,库和技术来允许你构建一个Web应用程序。这个Web应用程序可以是一些Web页面,博客,wiki,基于Web的日里应用或商业网站。

优点

Flask属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖外部库的框架。
- 框架很轻量
- 更新时依赖小
- 专注于安全方面的bug

Flask的依赖
  • Werkzeug 一个WSGI工具包(web服务网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为python语言定义的web服务器和web应用程序或框架之间的一种简单而通用的借口,其他语言也有类似的接口)
  • jinja2模板引擎

2,Django和Flask有什么区别?

Flask
  • 轻量级web框架,默认依赖两个外部库:jinja2和Werkzeug WSGI工具
  • 适用于做小型网站以及web服务的API,开发大型网站无压力,但架构需要自己设计
  • 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django
Django
  • 重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。
  • 自带ORM(Object-Relational Mapping 对象关系映射)和模板引擎,支持jinja等非官方模板引擎。
  • 自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库
  • 自带数据库管理app
  • 成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。
  • python web框架的先驱,第三方库丰富

3,Flask-WTF是什么,有什么特点?

  • Flask-wtf是一个用于表单处理,校验并提供csrf验证的功能的扩展库
  • Flask-wtf能把正表单免受CSRF<跨站请求伪造>的攻击
    eg:
form.html
<form action="{
   { url_for('wtf_form') }}" method='post'>
    {
   { form.c
### Flask 面试常见问题及答案 #### 什么是 FlaskFlask 是一个轻量级的 Python Web 框架,它提供了构建 Web 应用程序所需的基础功能。与其他框架相比,Flask 的核心非常简单,开发者可以自由选择扩展来满足项目需求[^5]。 #### Flask 和 Django 的区别是什么? Django 是一个全栈式的 Web 开发框架,内置了许多工具和库,适合快速开发复杂的应用;而 Flask 更加灵活,允许开发者根据自己的需求定制应用程序结构。因此,Flask 更适用于小型到中型项目或者需要高度自定义的情况[^6]。 #### 如何创建一个简单的 Flask 应用? 下面是一个最基础的 Flask 应用示例: ```python from flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello, Flask!" if __name__ == '__main__': app.run(debug=True) ``` 这段代码展示了如何通过 `@app.route` 装饰器定义路由以及返回响应的内容[^7]。 #### WSGI 在 Flask 中的作用是什么? WSGI (Web Server Gateway Interface) 定义了一个标准接口,使得 Python Web 应用能够与服务器通信。Flask 使用 Werkzeug 实现了 WSGI 接口,从而让应用可以在不同的 HTTP 服务器上运行[^8]。 #### Flask 支持哪些数据库操作方式? 虽然 Flask 自身并不绑定任何特定 ORM 工具,但它可以通过 SQLAlchemy 或 Peewee 等第三方库轻松实现关系型数据库的操作。此外,也可以直接使用原生 SQL 查询语句完成更复杂的任务[^9]。 #### Gunicorn 对于部署 Flask 应用有什么作用? Gunicorn 是一种基于预设配置文件启动多个工作进程并管理它们的 WSGI HTTP 服务器。当我们将 Flask 应用部署至生产环境时,通常会借助像 Gunicorn 这样的工具提高性能和稳定性[^10]。 #### 请求上下文中 session 和 global 变量的区别在哪里? Session 数据存储在客户端浏览器中的 cookie 文件里,并经过加密传输给服务端验证后再解密读取;而全局变量则存在于内存之中,在整个请求生命周期期间都可以被访问。需要注意的是,session 更安全但也相对耗资源一些[^11]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值