flask必掌握基础知识

1、请求-响应

前提:视图函数主要用于处理请求,传入其他请求对象,将一团糟,上下文可以把某些对象变为全局访问。flask使用上下文让特定的变量在一个线程中全局可访问,不干扰其他线程。

四个上下文全局变量

  • current_app: 激活程序实例
  • g:处理请求临时存储的对象
  • request:请求对象,封装客户端发的http请求的内容
  • seeion:用户回话,存储请求间需要记住的值的词典

四个请求钩子

主要用于处理请求前或者请求后的代码很有用,例如创建数据库,身份认证等

  • before_first_request:注册一个函数在处理第一个请求之前运行
  • before_request:注册一个函数,在每次请求之前运行
  • after_request:注册一个函数,如果没有没处理的异常抛出,每次请求之后运行
  • teardowm_request:注册一个函数,即使有没处理的异常抛出,也每次请求之后运行

注:请求钩子函数和视图函数之间共享数据一般用上下文全局变量g

        例如:brefore_requset处理程序可将数据库加载已登录用户保存到g.user,视图函数获取用户

响应

重定向用return 返回 函数 redirect()

@app.route("/")
def index():
    return redirct("www.baidu.com")

管理工具(flask_script)

特点:用命令执行程序

终端输入 python manage.py runserver -d

 

 

 

### Flask框架基础知识 Flask 是一种轻量级的 Python Web 开发框架,它提供了简单而灵活的方式来构建 Web 应用程序。以下是关于 Flask 的一些核心概念和基本用法: #### 1. 创建 Flask 应用 要创建一个简单的 Flask 应用,首先需要导入 `Flask` 类并实例化一个应用对象。通常会传递 `__name__` 参数给 Flask 构造函数,这有助于框架定位资源文件的位置[^4]。 ```python from flask import Flask app = Flask(__name__) ``` #### 2. 路由机制 路由是指将特定的 URL 映射到对应的处理函数的过程。通过使用装饰器 `@app.route()` 可以为某个 URL 配置其对应的视图函数[^2]。例如: ```python @app.route('/') def hello(): return 'Hello, Flask!' ``` 在这个例子中,当用户访问根路径 `/` 时,Flask 将调用 `hello()` 函数,并返回字符串 `'Hello, Flask!'` 给客户端。 #### 3. 表单处理与 CSRF 保护 为了增强安全性,在接收来自用户的输入数据时,建议启用跨站请求伪造 (CSRF) 保护功能。可以通过引入扩展库 `flask_wtf` 来实现这一目标[^1]。定义支持 CSRF 功能的表单类如下所示: ```python from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired class MyForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) submit = SubmitField('Submit') ``` 在此基础上,可以进一步完善前端页面以及后端逻辑以完成完整的交互流程。 #### 4. 习路线推荐 对于初者来说,可以从以下几个方面入手Flask 和相关技术栈[^3]: - **Python 基础**: 掌握变量、控制结构、函数等内容。 - **Web 开发基础**: 理解 HTTP 协议工作原理及其常见状态码含义。 - **数据库操作**: 使用 SQLAlchemy 或其他 ORM 工具连接关系型数据库管理系统(RDBMS),如 MySQL/PgSQL。 - **模板引擎 Jinja2**: 编写动态 HTML 页面并通过上下文渲染展示个性化内容。 - **部署上线指南**: 利用 Gunicorn/Nginx 等工具将本地调试环境迁移到生产服务器运行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值