随笔分类 - Flask学习
摘要:蓝图使用起来就像应用当中的子应用一样,可以有自己的模板,静态目录,有自己的视图函数和URL规则,蓝图之间互相不影响。但是它们又属于应用中,可以共享应用的配置。对于大型应用来说,我们可以通过添加蓝图来扩展应用功能,而不至于影响原来的程序。不过有一点要注意,目前Flask蓝图的注册是静态的,不支持可插拔
阅读全文
摘要:当我们要往客户端发送大量的数据比较好的方式是使用流,通过流的方式来将响应内容发送给客户端,实现文件的上传功能,以及如何获取上传后的文件。 响应流的生成 Flask响应流的实现原理就是通过Python的生成器,也就是大家所熟知的yield的表达式,将yield的内容直接发送到客户端。下面就是一个简单的
阅读全文
摘要:信号(Signal)就是两个独立的模块用来传递消息的方式,它有一个消息的发送者Sender,还有一个消息的订阅者Subscriber。信号的存在使得模块之间可以摆脱互相调用的模式,也就是解耦合。发送者无需知道谁会接收消息,接收者也可自由选择订阅何种消息 Flask的信号功能是基于Python消息分发
阅读全文
摘要:写个验证用户登录的装饰器:在调用函数前,先检查session里有没有用户 需将此装饰器加在每个需要验证登录的请求方法上即可 URL集中映射 Flask也支持像Django一样,把URL路由规则统一管理,而不是写在视图函数上 我们先来写个视图函数,将它放在一个”views.py”文件中: 然后在Fla
阅读全文
摘要:内置全局函数 dict()函数,方便生成字典型变量 joiner()函数,神奇的辅助函数。它可以初始化为一个分隔符,然后第一次调用时返回空字符串,以后再调用则返回分隔符。对分隔循环中的内容很有帮助 cycler()函数,在给定的序列中轮循,列表项<li>的”class”在”odd”和”even”两个
阅读全文
摘要:会话session ,允许你在不同请求 之间储存信息。这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它。 这里用到的 escape() 是用来转义的。如果不使用模板引擎就可以像上例 一样使用这个函数来转义。 利用系统生成一个好的密匙 基
阅读全文
摘要:upload.html show.html 文件上传 HTML 表单中设置 enctype="multipart/form-data" 属性,已上传的文件被储存在内存或文件系统的临时位置。你可以通过请求对象 files 属性来访问上传的文件。每个上传的文件都储存在这个 字典型属性中。这个属性基本和标
阅读全文
摘要:回调接入点-页面缓存逻辑 使用过滤器 字符串过滤器 数值操作 列表操作 字典列表操作 Flask内置过滤器 Flask提供了一个内置过滤器”tojson”,它的作用是将变量输出为JSON字符串。这个在配合Javascript使用时非常有用。我们延用上节字典列表操作中定义的”users”变量 <scr
阅读全文
摘要:在模板渲染中,使用Markup转换变量中的特殊字符 from flask import Markup Markup函数对字符串进行转移处理再传递给render_template()函数 在浏览器中显示标签代码 路由地址的反响生成 通过函数名获得与其绑定的Url地址 需要使用url_for函数进行反向
阅读全文
摘要:部署流程 manage.py 部署命令 每次安装升级只需运行deploy命令即可完成操作 把生产环境中的错误写入日志 config.py 程序出错时发送电子邮件 运行生产服务器 pip install gunicorn gunicorn manage:app 使用gunicorn运行程序 添加依赖需
阅读全文
摘要:记录影响性能的数据库查询 app/main/views.py config.py 启用缓慢查询记录功能的配置 分析源码 manage.py 在请求分析器的监视下运行 使用python manage.py profile 启动程序,终端会显示每条请求的分析数据,其中包含了25个运行最慢的25个函数 -
阅读全文
摘要:获取代码覆盖报告 安装代码覆盖工具 pip install coverage manage.py 覆盖检测 Flask测试客户端 测试web程序 tests/test_client.py 使用Flask测试客户端编写的测试框架 config.py 在测试配置中禁用CSRF保护 测试web api服务
阅读全文
摘要:最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了。 REST的六个特性: RESTful web service的样子 REST架构就是为了HTTP协议设计的。RESTful web services的核心概念是管理资源。资
阅读全文
摘要:评论在数据库中的表示 由于评论和2个模型有关系,分别是谁发了评论,以及评论了哪个文章,所以这次要更新数据库模型 models.py 创建用户评论数据库模型 User和Post里面也要和Comment设置相应的关系 提交和显示评论 main/forms.py 创建评论输入表单 为支持评论更新路由pos
阅读全文
摘要:数据库关系 1.1多对多关系 添加第三张表(关联表),多对多关系可以分解成原表和关联表之间的两个一对多的关系 多对多仍然使用db.relationship()方法定义,但是secondary参数必须设定为关联表,多对多关系可以在任何一个表中定义,backref参数会处理好关系的另一侧 1.2 自引用
阅读全文
摘要:提交和显示博客文章 app/models.py 文章模型 app/main/form.py 博客文章表单 app/main/views.py 处理博客文章的首页路由 把以前发布的文章列表传给魔板 index.html 显示博客文章首页模板 styles.css .profile-thumbnail
阅读全文
摘要:资料信息 app/models.py app/auth/views.py 利用auth蓝本中的before_app_first_request方法,来完成每次请求前都要运行ping方法,来实现更新已登录用户的访问时间 用户资料页面 为每个用户都创建资料页面 app/mian/views.py 资料页
阅读全文
摘要:角色在数据库中表示 app/models.py 程序的权限 里面的位值。 权限常量app/models.py 用户角色 使用权限组织角色(不同角色拥有的权限利用位运算进行组合) 在Role类中写一个insert_roles方法来完成将角色添加到数据库中的操作 赋予角色 app/models.py 管
阅读全文
摘要:使用werkzeug 实现密码散列 密码散列化测试tests/test_url_model.py #!/usr/bin/env python # -*- coding:utf-8 -*- import unittest from app.models import User class UserMo
阅读全文
摘要:pip freeze >requirement.txt 自动生成版本号 pip install -r requirement.txt 自动下载对应的库 梳理结构 config.py #!/usr/bin/env python # -*- coding:utf-8 -*- import os base
阅读全文

浙公网安备 33010602011771号