![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flask
MonCheri_Flowers
Change the world by program
展开
-
flask-MTV模式
所谓的MTV ( Model–Template–View ),翻译一下就是模型、模板、视图。一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户转载 2017-09-04 09:12:31 · 1328 阅读 · 0 评论 -
flask-用户认证(下)
确认账户对于某些特定类型的程序,有必要确认注册时用户提供的信息是否正确。常见要求是能通过提供的电 子邮件地址与用户取得联系。为验证电子邮件地址, 用户注册后,程序会立即发送一封确认邮件。新账户先被标记成未激活状态,用户点击邮件中的链接后,才能激活。账户确认过程中,往往会要求用户点击一个包含确认令牌的特殊 URL 链接。1. 使用itsdangerous生成确认令牌原创 2017-09-02 14:13:02 · 1845 阅读 · 0 评论 -
AttributeError: 'AnonymousUserMixin' object has no attribute 'confirmed'
这里,confirmed是User数据库的一个属性解决方式:必须在已经注册后继续执行也可以:在models里面,新建一个匿名用户类class AnonymousUser(AnonymousUserMixin): # confirmed = False @property def confirmed(self): return FalseloginManage原创 2017-09-02 10:09:25 · 4067 阅读 · 0 评论 -
UnicodeDecodeError: 'ascii' codec can't decode
默认情况下,Python采用的是ascii编码方式解决:我把Python的默认编码方式修改为utf-8,就可以规避上述问题的发生,具体方式,我们在Python文件的前面加上如下代码:import sysreload(sys)sys.setdefaultencoding('utf8')重新运行就可以了原创 2017-09-01 19:14:00 · 314 阅读 · 0 评论 -
flask-用户认证(上)
主要用到的包:Flask-Login: 管理已登录用户的用户会话。Werkzeug: 计算密码散列值并进行核对(把密码变成散列值itsdangerous: 生成并核对加密安全令牌(确认邮件)。Werkzeug实现密码散列若想保证数据库中用户密码的安全,要存储密码的散列值。计算密码散列值的函数接收密码作为输入,使用一种或多种加密算法转换密码,最终得到一个和原始密码没有关系的字原创 2017-08-31 21:50:35 · 1440 阅读 · 0 评论 -
BuildError: Could not build url for endpoint 'main.index'. Did you mean 'main.indexs' instead?
最近用flask实现用户注册登录的时候,遇到这个问题werkzeug.routing.BuildErrorBuildError: Could not build url for endpoint 'main.index'. Did you mean 'main.indexs' instead?找了半天,最后发现根源在base.html 找到base.html,发现里面这么写的: <div clas原创 2017-08-31 16:08:58 · 8227 阅读 · 1 评论 -
flask-项目结构
项目结构【多文件 Flask 程序的基本结构】4 个顶级文件夹: - app 目录包含Flask 程序; - migrations 文件夹包含数据库迁移脚本 - tests 目录包含测试代码; - venv 目录包含 Python 虚拟环境。同时还创建了一些新文件:requirements.txt 列出了所有依赖包,便于在其他电脑中重新生成相同的虚拟环境;config.py 存储原创 2017-08-31 00:16:49 · 5086 阅读 · 0 评论 -
flask-数据库
Flask-SQLAlchemy管理数据库SQLAlchemy是一个很强大的关系型数据库框架,支持多种数据库后台。 SQLAlchemy 提供了高层 ORM,也提供了使用 数据库原生 SQL 的低层功能。和其他大多数扩展一样, Flask-SQLAlchemy 也使用 pip 安装:(venv) $ pip install flask-sqlalchemy会同时安装两个包:SQLAlchemy f原创 2017-08-29 21:42:53 · 494 阅读 · 0 评论 -
flask-模板(下)
模板继承模板继承允许你构建一个包含你站点共同元素的基本模板“骨架”, 并定义子模板可以覆盖的块。模板继承是重复使用代码的一种强大方式,它类似于 Python 代码中的类继 承。首先,创建一个名为 base.html 的基模板:html>head> {% block head %} title> {% block titl原创 2017-08-29 20:46:06 · 673 阅读 · 0 评论 -
解决 Python 出现的UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9
Python 今天写脚本测试表单提交数据,出现了编码错误 原因是python的str默认是ascii编码,和unicode编码冲突,就会报这个错误通过搜集网上的资料,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf8')原创 2017-08-29 17:26:16 · 3479 阅读 · 0 评论 -
HTTP方法
HTTP方法下面的都是非常常见的方法:GET 浏览器告知服务器:只获取页面上的信息并发给我。这是最常用的方法。HEAD 浏览器告诉服务器:获取信息,但是只关心消息头。应用应像处理 GET 请求一样来处 理它,但是不分发实际内容。在 Flask 中你完全无需人工干预,底层的 Werkzeug 库已经替你打点好了。POST 想在 URL 上发布新信息。并且,服务器必须确保数据已存储且仅存储一原创 2017-08-29 01:03:00 · 373 阅读 · 0 评论 -
flask-带你快速入门
一个小应用创建一个python文件:hello.pyfrom flask import Flaskapp = Flask(__name__) #app是程序实例,一个项目只能有一个程序实例@app.route('/') #路由装饰器def hello_world(): #视图函数 return 'Hello World!' #返回一个字符串if __name__ == '_原创 2017-08-29 00:48:11 · 606 阅读 · 0 评论 -
flask-模板(上)
渲染模板假设用户在网站中注册了一个新账户。用户在表单中输入电子邮件地址和密码,然后点击提交按钮。 服务器 接收到包含用户输入数据的请求,然后 Flask 把请求分发到处理注册请求的视图函数。 这个视图函数需要 访问数据库,添加新用户,然后生成响应回送浏览器。这两个过程分别称为业务逻辑和表现逻辑。 把业务逻辑和表现逻辑混在一起会导致代码难以理解和维护。用 Python 生成 HTML 也十分原创 2017-08-29 08:10:55 · 652 阅读 · 0 评论 -
jinja2.exceptions.UndefinedError: 'app.models.Admin object' has no attribute 'role'
最近写项目遇到这样的问题:jinja2.exceptions.UndefinedError: 'app.models.Admin object' has no attribute 'role'解决方法:这个问题找了好久,才发现是models.py里面Role中少了字段,加上就好了roles = db.relationship("Admin", backref='role')原创 2017-10-21 08:21:16 · 2513 阅读 · 0 评论