Flask Web
文章平均质量分 67
yangdi1206
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
程序的基本结构:第一个Flask程序
在编写第一个程序之前,首先有几个概念需要知道:1.初始化:所有的Flask程序都必须创建一个程序实例。程序实例是Flask类的对象,经常使用的创建代码为:from flask import Flaskapp=Flask(__name__)Flask类的构造函数只有一个必须指定的参数,Flask用这个参数决定程序的根目录,以便能找到相对于程序根目录的资源文件,这个参数为程序主模块原创 2017-03-19 21:57:07 · 813 阅读 · 0 评论 -
Windows下Flask安装
·此次安装需要pip。若没安装pip首先需要安装pip安装Flask最便捷的方式是使用虚拟环境。虚拟环境是Python解释器的一个私有副本,在此环境中可以安装私有包且不会影响系统中安装的全局Python解释器。虚拟环境的好处:1.可以在系统的Python解释器中避免包的混乱和版本的冲突,为每个程序创建的虚拟环境可以保证程序只能访问虚拟环境中的包2.不需要管理员权限虚拟环原创 2017-03-16 20:26:07 · 1779 阅读 · 0 评论 -
Flask使用mysql数据库
我使用的数据库框架为:Flask-SQLAlchemy,它是一个Flask扩展,这个扩展包装了SQLAlchemy,支持多种数据库后台。1.Flask-SQLAlchemyFlask-SQLAlchemy安装:pip install flask-sqlalchemy安装完成之后,还需要安装pymysql(pymysql是python中操作mysql的模块):pip install py原创 2017-04-11 22:16:36 · 1817 阅读 · 0 评论 -
web表单(1)--表单类&将表单渲染为HTML&在视图函数中处理表单
1.表单类使用Flask-WTF时,每个web表单都由继承自Form的类表示。这个类定义表单中的一组字段,每个字段都用对象表示。字段对象可以附属一个或多个验证函数。验证函数用来验证用户所提交的数据是否符合要求。hello.py:定义表单类from flask_wtf import Formfrom wtforms import StringField, SubmitFie原创 2017-03-30 17:20:58 · 2124 阅读 · 0 评论 -
自定义错误页面
Flask允许程序使用基于模板的自定义错误页面。常见的错误页面有以下两种:1.404:客户端请求未知页面或者路由时候显示2.500:有未处理的异常时候显示在hello.py中自定义错误页面:from flask import Flask, render_templatefrom flask_bootstrap import Bootstrapapp = F原创 2017-03-29 21:25:46 · 961 阅读 · 0 评论 -
跨站请求伪造保护
默认情况下,Flask-WTF能保护所有的表单免受跨站请求伪造(Cross-Site Request Forgery, CSRF)的攻击。恶意网站把请求发送到被攻击者已经登陆的其他网站时就会引发CSRF攻击。Flask-WTF实现CSRF保护:需要程序设置一个密钥,Flask-WTF使用这个密钥生成加密令牌,再用令牌验证请求中表单数据的真伪。app.config字典可以用来存储原创 2017-03-29 21:55:42 · 530 阅读 · 0 评论 -
安装Flask-WTF
Flask-WTF:这个扩展对独立的WTForms包进行了包装,方便集成到Flask程序中。安装Flask-WTF:pip install flask-wtf原创 2017-03-29 21:32:20 · 1690 阅读 · 0 评论 -
Bootstrap
Bootstrap基本信息: Bootstrap是Twitter开发的一个开源框架,它提供的用户组界面可用于创建整洁的页面,且这些网页还可以兼容所有现代Web浏览器。它是客户端框架,所以不会直接涉及服务器。使用之前首先要安装一个Flask-Bootstrap的Flask扩展。安装 Flask-Bootstrap:使用pip进行安装Flask-Bootstrap,安装命令原创 2017-03-21 20:48:31 · 363 阅读 · 0 评论 -
Jinja2模板(2)--变量和控制结构
变量在Jinja2模板(1)中的例2中,{{name}}结构表示一个变量,它是一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取。Jinja2能识别所有类型的变量。可以使用过滤器修改变量:过滤器名添加在变量名之后,中间使用竖线分隔开,如,下面的模板以首字母大写形式显示变量name的值: Hello, {{name | capitalize}}Jinj原创 2017-03-20 21:23:17 · 9059 阅读 · 0 评论 -
Jinja2模板(1) --基本概念,模板引擎,渲染模板
首先需要了解几个概念:例:当用户在网站中注册了一个新账户,用户在表单中填写信息,然后点击提交按钮。业务逻辑:服务器接收到包含用户输入数据的请求,然后Flask把请求分发到处理注册请求的视图函数。表现逻辑:这个视图需要访问数据库,添加新用户,然后生成响应回送给浏览器。业务逻辑和表现逻辑混在一起会使得代码难以维护和扩展。把表现逻辑移到模板中可以提升程序的可维护性。模板:是一个包含响原创 2017-03-20 19:51:42 · 1171 阅读 · 0 评论 -
web表单(2)--重定向和用户会话&Flash消息
1.重定向和用户会话在web表单(1)中的hello.py存在一个问题:用户输入名字提交表单后,点击浏览器的刷新按钮,会得到一个要求用户再次提交表单之前进行确认的警告。出现这个问题的原因是刷新页面时浏览器会重新发送之前已经发送过的最后一个请求。如果这个请求是包含表单数据的POST请求,刷新页面后会再次提交表单。所以要解决这个问题,最好的办法是别让web程序把POST请求作为浏览器发送的最后一个原创 2017-04-05 16:12:21 · 1141 阅读 · 0 评论
分享