Flask核心知识和技术
-
基础:
- Flask应用的结构和初始化
- 路由和URL规则
- 请求和响应对象的处理
- 使用
render_template渲染HTML模板
-
模板引擎(Jinja2) :
- 控制结构(例如for循环和if语句)
- 模板继承
- 定义和使用宏
-
Web表单:
- 使用
Flask-WTF扩展 - 表单验证和错误处理
- 使用
-
数据库:
- 使用
SQLAlchemy作为ORM - 数据模型定义
- 数据库迁移,常使用
Flask-Migrate扩展
- 使用
-
会话和认证:
- 用户登录和注销
- 使用
Flask-Login进行用户会话管理 - 密码散列和验证
-
错误处理:
- 定义错误页面(例如404、500)
- 使用
app.logger记录错误
-
RESTful API:
- 使用
Flask-RESTful或Flask-RESTx - API版本控制
- 使用
-
部署:
- 使用WSGI服务器,如
Gunicorn或uWSGI - 使用代理服务器,如
Nginx或Apache - 在云平台上的部署,如AWS、Heroku、GCP等
- 使用WSGI服务器,如
-
其他Flask扩展:
Flask-Mail(电子邮件支持)Flask-Cache(缓存支持)
Flask面试常考问题:
- 解释Flask和Django之间的主要区别。
- 如何在Flask中设置和读取cookie?
- 你如何在Flask中处理数据库迁移?
- 如何在Flask应用程序中配置多个环境(如开发、测试、生产)?
- 解释Flask应用上下文和请求上下文。
- 如何在Flask中使用蓝图(Blueprints)?
- 解释Flask中的
before_request和after_request钩子。 - 如何在Flask中创建一个RESTful API?
- 如何处理并发请求?你知道哪些WSGI服务器,并知道如何配置它们吗?
- 如何在Flask中实现用户认证和授权?