随笔分类 - flask-web开发
摘要:首先明确一点:直接使用ip地址和localhost不能用子域名 主域名实现 首先做一项配置,将本地host映射一个域名 在app的config中指定 SERVER_NAME 选项为配置的域名:端口号 启动flask程序,访问 子域名实现 在蓝图中通过subdomain来指定子域名 在本地host文件
阅读全文
摘要:模板文件: 根目录下的templates-->蓝图定义时指定的位置-->(若有相同名字的文件,则加载根目录下的资源)1、在蓝图的情况下,寻找静态资源依旧是默认从主目录的templates2、如果在根目录下的static和templates中没有找到指定文件,则会从蓝图声明时指定的文件夹下去找3、若默
阅读全文
摘要:蓝图用于将项目模块化,分开管理 比如项目有4个模块:用户管理、书籍、电影、新闻,如果放在一起不好管理也不好维护,可以将每个模块单独抽离出来,再同一使用,flask.Blueprint可以实现功能 Blueprint源码 项目蓝图分类: 以user模块为例 使用蓝图可以在定义的时候使用 url_pre
阅读全文
摘要:对于url的保护,一般是通过装饰器实现,如:某个页面需要登录后才能访问 函数视图实现 类视图实现类视图中的装饰器,需要重写类视图的一个类属性:decorators,这个列属性是列表或者元祖都可以,需要用多个装饰器时,按执行顺序放进去就行,会按里面的装饰器顺序执行,View中源码如下 如:以上面那个案
阅读全文
摘要:调度方法的视图基于flask.view.MethodView实现,根据请求方法的不同,执行类视图下对应的方法,只要是请求方法都可以定义:get、post、put、delete··· 拿登录来说 也可以将渲染模板单独抽离出来
阅读全文
摘要:标准视图继承自flask.view.View as_view源码 1、标准视图继承自flask.view.View2、并且在子类中必须实现dispatch_request方法,以后请求过来后,都会执行这个方法,这个方法的返回值就相当于是之前的函数视图一样,也必须返回Response或者子类的对象,或
阅读全文
摘要:flask注册视图有两种方式 一:add_url_rule()add_url_rule源码:rule:接口地址view_func=视图函数endpoint=终结点,可以理解为给当前视图取的别名,最直观的就是在url_for()的时候会用到,如果指定了endpoint,则在url_for()的时候,不
阅读全文
摘要:模板继承可以把有共性的一些代码抽出来放到父模板中,其他需要次特性的文件继承模板即可 在jinja2中,使用extends来继承定义好的模板,使用{% block 位置名%} {% endblock %}来预留位置 自己需要定义一个父模板 其他html继承base模板即可拥有所有的模块 block继承
阅读全文
摘要:静态文件: flask默认指定的静态文件路径为根目录下的static,可以自定义路径,并指定,使用url_for('文件夹', filename='文件名')引用 加载css文件 加载js文件 其他文件加载方式一样,只不过需要根据具体文件类型使用不同的标签
阅读全文
摘要:set jinja2模板内部可以用set定义变量,只要定义了这个变量,在后面的代码中都可以使用此变量 with 如果想让定义的变量只在部分作用域内有效,则不嫩更实用set,需使用with定义,with中定于的变量,稚嫩你在with语句中使用,超出范围无效
阅读全文
摘要:用于将页面的某一块地方抽取出来,要嵌入内容的时候使用,继承的概念 把具体内容分别放到其他地方同一管理,要用的时候使用include继承 使用include的时候可以直接使用接收的数据
阅读全文
摘要:宏有点类似于函数,接收一些数据,进行处理,但是没有返回值,可以将一些常用的代码片段放到宏中,然后把不固定的值抽出来做变量 使用maacro来定义宏,使用宏的时候,参数可以设默认值 自定义一个input标签 真实工作情况下是把宏单独封装起来,要用的时候导入使用(起点路径为templates),导入的方
阅读全文
摘要:jinja2中的逻辑语句和python中的基本一致,执行逻辑的时候用{% 逻辑关键字 %}开始,{% end逻辑关键字 %}结束 if语句(判断关键字也是一样的,and、or、not···): for循环,与python的for语法一致,但不可以使用continue和break来控制循环的执行 列表
阅读全文
摘要:过滤器的本质就是函数,如果在模板中调用这个过滤器,那么就会将这个变量的值作为第一个参数传给过滤器函数,然后将函数的返回值作为滤器的返回值 1、在python文件中写好过滤的函数和逻辑2、将将函数注册到模板过滤器中:@app.template_filter('过滤器名')3、在模板中调用过滤器:变量|
阅读全文
摘要:1、abs:返回一个数的绝对值(见上一篇)2、default:如果当前变量没有值或字段,则展示默认值(见上一篇) 3、转义过滤器:如果后端出过来的值含html标签,可以控制是否视为html标签执行或者当成字符串处理 escape或e:转义符:会将<、>等html标签符号转义成html中的可展示符号(
阅读全文
摘要:在模板里面有时候需要对传过来的数据进行一些处理,jinja2有一些内置的过滤器可以进行处理。类似于python内置函数,通过 “|” 进行使用,详见jinja2官方文档 使用方法:{{ 变量名|过滤器名 }} 如:内置过滤器abs:作用为返回一个数的绝对值 default过滤器:如果传过来的数据有此
阅读全文
摘要:在页面中,有点击跳转到另一个地址的时候,可以使用url_for来指定要跳转的视图函数:{{ url_for('view_function') }} 如果该视图需要接收参数
阅读全文
摘要:从后台传参到模板,模板再渲染到前端 传参的时候,可以在html后面加上关键字传参,在模板里面用{{ 参数 }}使用即可,可以传多个参数 也可以使用**传参,取值的时候就直接取内容
阅读全文
摘要:jinja2用于渲染模板 查找路径 1、默认从项目根目录下的templates下面找指定的html文件 也可以往下新建路径 2、指定自定义路径 在Flask的源码中,指定了默认路径为templates 所以可以使用template_folder参数指定自定义路径
阅读全文
摘要:1.如果返回的是个合法的响应对象,则直接返回 同时,也可以在response里面做一些操作,比如增加cookie 2.如果返回的是一个字符串,那么flask会重新创建一个werkzeug,wrappers,Response对象,Response将该字符串作为主体,状态码为200,MIME的类型为te
阅读全文

浙公网安备 33010602011771号