随笔分类 - flask
摘要:应用上下文,对FLASK 核心对象的封装,提供了一些好用的方法 请求上下文,对 Request 请求对象的封装 AppContext RequestContext ,通过结构很方便查找到 分别实现了push , pop 等方法 app 和 Request () 对象只是其中的一个属性 flask 的
阅读全文
摘要:ORM 的模型与模型之间的关系 多对一关系 多个模型都与其中一个模型有关联,如:一个项目有多个接口,一个接口有多个测试用例 Project 模型的 modules 字段不会在数据库的表显示,用于表示Project 模型与 Module 模型之间的关系,查询project. module可得到该项目下
阅读全文
摘要:随着项目的增大,便于管理,需要把视图函数单独放一起,架构为: ~ 启动文件 ~ 视图函数 ~ 数据处理 ~ view ~ 其它的帮助函数 启动有两种方法 1、集中式管理注册路由,启动文件里调用视图相关的代码 2、 基于类的视图,可插拔视图 dispatch_request 分配请求 类视图有两种调用
阅读全文
摘要:M:model,数据库相关逻辑 V:view,返回的内容展示,即前端的内容 C:control,视图函数,接收请求,响应结果 控制器(Controller),负责转发请求,对请求进行处理 视图(View), 界面设计人员进行图形界面设计 模型(MOdel),程序员编写程序应有的功能(实现算法等等)、
阅读全文
摘要:当函数中出现很多的条件分支==, 可使用字典封装
阅读全文
摘要:一个简单的服务器过程大概分为4步 1、搭建服务 2、监听动作, while, 0.1 s 监听 3、处理程序 4、返回数据到套接字,生成一个响应对象 搭建简单的服务器 前端访问 路由添加参数
阅读全文
摘要:ORM 模型就是将 pymysql 语句和 sql 语句进行封装 使用orm模型创建数据库,分四个步骤: 1、下载SQLAlchemy 2、配置数据库 3、定义表的结构,设计表,即建模 4、创建表 创建表,即初始化数据库有三种方式 1、command创建 ~ set FLASK_APP = demo
阅读全文
摘要:在每两个组件之间可以使用中间件进行额外的处理一些事情 request 当 flask 应用处理请求时,它会根据从 WSGI 服务器收到的环境创建一个 Request 对象。因为工作者(取决于服务器的线程、进程或协程)一次只能处理一个请求,所以在该请求期间请求数据可被认为是该工作者的全局数据。 请求钩
阅读全文
摘要:当前端传入的数据,后端是必须要验证,不然容易出现安全事故 如:sql 注入,跨站脚本攻击(XSS )和 HTTP批量请求(CSRF跨站请求伪造) 1、直接在视图函数中的业务逻辑中验证数据,如登录中的验证 abort()的description 参数是中文的话,前端会显示乱码,需要指定content-
阅读全文
摘要:环境处理器,是一个上下文处理器,用于在模板被渲染之前运行其所修饰的函数,并将函数返回的字典导入到模板上下文环境中,与模板的上下文合并 环境处理器不仅可以传递变量,还可以传递函数 设置一个环境处理器,一定要return一个字典 在jinja中的使用,传入上下文处理器的key值使用 全局函数 上下文环境
阅读全文
摘要:{ # 检查变量是否是字典 # } {% if {'name': 'test'} is mapping %} <h2>Variable is dict. </h2> {% endif %}
阅读全文
摘要:1、根据不同的命令可以过滤不同的命令 2、注册过滤器命令 方法一:使用装饰器注册一个‘file33’的过滤命令 方法二, 集中注册: -- 在jinja_env的过滤函数中添加 -- 在app直接集中注册 jinja:
阅读全文
摘要:1、在flask服务端中创建一个服务器并运行,render_template 是前端模板渲染 2、前端的html 接收后端的数据需要进行解析,如:可使用 {{ p }} 接收后端的数据,其中 p 是后端中已定义的参数,后端定义的“title”,前端使用 {{ title }} 接收 获取变量属性 {
阅读全文
摘要:响应对象不进行设置,返回字符串浏览器会自动把它变成html格式 主要响应的类型 Content-Type分为以下几种: 文本:text/plain HTML:text/html XML:application/xml json:application/json flask 响应对象构造有两种方式 1
阅读全文
摘要:使用flask实现上传文件,需要考虑 1、限制上传文件的大小 2、限制上传文件的名称,以防脚本攻击 3、上传后是否可查看 前端代码: 后端flask的代码:
阅读全文
摘要:重定向:方法1:@app.route(redirect_to='/'),不会去执行视图函数 方法2:视图函数里面 redirect(),参数可传路径,也可传视图函数 使用redirect()函数重定向 1、第一个参数可以直接传路由,如:‘/’,也可传递视图函数 2、redirect(url_for(
阅读全文
摘要:前端路由传参一共有两种方式 1、在路由后面使用 / + 参数 2、在路由后面使用 ? + 参数 在路由中设置动态参数 通过 ?符号来动态传参 调用request.args.get 来参数获取 flask 中,“ /id/ ”和“ /id ”是两个不同的url,若定义了/id/,访问 /id 也可,反
阅读全文
摘要:开启flask 服务器需要3步骤 1、初始化app static_folder:后端存储静态文件夹 2、添加路由,即视图函数(view function) 3、启动服务器 路由:处理URL和函数之间的绑定关系的程序 1、接收参数 2、调用对应的函数去处理数据(model) 3、构建响应结果 多URL
阅读全文