flask实战
hebi123s
这个作者很懒,什么都没留下…
展开
-
response_demo视图返回值详解
return的信息只能处理 ,元组,字符串,和非Response对象如果是字典,列表,可以得自定义Response这个类,就可以用了。from flask import Flask,Response,jsonifyimport jsonapp = Flask(__name__)@app.route('/')def index(): return 'xxxxx'@a...翻译 2018-09-27 10:37:17 · 225 阅读 · 0 评论 -
# Flask-Restful笔记:
### 安装:Flask-Restful需要在Flask 0.8以上的版本,在Python2.6或者Python3.3上运行。通过pip install flask-restful即可安装。### 基本使用:1. 从`flask_restful`中导入`Api`,来创建一个`api`对象。2. 写一个视图函数,让他继承自`Resource`,然后在这个里面,使用你想要的请求方式来定...原创 2018-09-09 11:24:48 · 441 阅读 · 0 评论 -
restful_api规范
阮一峰的网络日志 » 首页 » 档案 上一篇:理解OAuth 2.0 下一篇:我的博客文集上架了! 分类: 开发者手册RESTful API 设计指南作者: 阮一峰日期: 2014年5月22日网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同...转载 2018-09-09 10:57:02 · 303 阅读 · 0 评论 -
blueprint实现子域名
1.ip地址和 localhost下面不能挂子域名2.实现步骤(1)新增blueprint,注册蓝图的时候,使用的参数是 subdomaincms_bp = Blueprint('cms',__name__,subdomain='cms')@cms_bp.route('/')def index(): return 'cms index page' (2)将蓝图注册...原创 2018-09-04 12:35:00 · 271 阅读 · 0 评论 -
url_for 中使用,blueprint
笔记:url_for反转蓝图中的视图函数为url: * 如果使用蓝图,那么以后想要反转蓝图中的视图函数为url,那么就应该在使用url_for的时候指定这个蓝图。比如`news.news_list`。否则就找不到这个endpoint。在模版中的url_for同样也是要满足这个条件,就是指定蓝图的名字。 * 即使在同一个蓝图中反转视图函数,也要指定蓝图的名字。 ...原创 2018-09-04 12:23:55 · 667 阅读 · 0 评论 -
blueprint的基本使用
什么是blueprint,蓝图,就是将大型的项目,分层解耦模块化。代码和模块都得解耦。示例代码:from flask import render_templatefrom flask import Blueprint#第一步先引入user_bp = Blueprint('user',__name__)#第二步,使用blueprint初始化一个,必须要传递2个参数(蓝图的名字...原创 2018-09-04 11:11:57 · 5690 阅读 · 0 评论 -
class_view_decorate
###首先看看普通的函数视图,如何使用装饰器(1)导入request , wraps(2)定义装饰器,继承自 func(3)在视图函数和路由之间内加上,写好的视图函数示例代码如下:from flask import Flask,requestfrom functools import wrapsapp = Flask(__name__)#定义一个装饰器,这个装饰器...原创 2018-08-29 18:19:08 · 174 阅读 · 0 评论 -
mothod_class_view
基于方法的类视图,是根据不同的mothod,调取不同的方法。mothod可以支持 post、get、put、delete可以让代码更加简洁,不同的mothod可以放置到不同的方法里面示例代码如下:<form action="" method="post"> <tbody> <tr> <td&g...原创 2018-08-29 17:12:32 · 216 阅读 · 0 评论 -
stardard_class
类视图也可以返回请求页面实现方法:1.写类视图的时候必须继承 ,views.view这个类(先导入views)2.定义类视图的时候,使用 dispatch_reuqest方法。有网络请求的时候,都会使用这个方法,返回值相当于函数视图一样,必须有response,可以是子类的对象,字符串、元组3.得使用app.add_url_rule来完成映射,/list/为访问路径,可以不指定e...原创 2018-08-29 12:25:48 · 197 阅读 · 0 评论 -
Memcached
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。 Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的...转载 2018-09-09 11:56:19 · 123 阅读 · 0 评论 -
Redis
Redis 不支持 win系统,一般可以在 ubantu上使用 1. 什么是Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:...转载 2018-09-09 12:04:02 · 138 阅读 · 0 评论 -
celery
一. celery 简介Celery 是一个专注于实时处理和任务调度的分布式任务队列, 同时提供操作和维护分布式系统所需的工具.. 所谓任务就是消息, 消息中的有效载荷中包含要执行任务需要的全部数据.Celery 是一个分布式队列的管理工具, 可以用 Celery 提供的接口快速实现并管理一个分布式的任务队列.Celery 本身不是任务队列, 是管理分布式任务队列的工具. 它封装了操作...原创 2018-09-09 12:11:58 · 487 阅读 · 0 评论 -
上下文
# 上下文:### Local对象:在`Flask`中,类似于`request`的对象,其实是绑定到了一个`werkzeug.local.Local`对象上。这样,即使是同一个对象,那么在多个线程中都是隔离的。类似的对象还有`session`以及`g`对象。### Thread Local对象:只要满足绑定到这个对象上的属性,在每个线程中都是隔离的,那么他就叫做`Thread Loca...转载 2018-09-07 12:32:22 · 160 阅读 · 0 评论 -
local线程隔离对象
为什么要线程隔离: 因为有请求的并发的时候,服务器不知道哪个是哪个。Local线程隔离的原理:有多组请求的时候,Local将线程分割成多个子线程,每个子线程处理成字典,然后再分发给服务器。可以处理的对象有 request、session、g 等。 示例代码: #encoding: utf-8from threading import Threadfrom werkzeu...原创 2018-09-07 12:28:06 · 213 阅读 · 0 评论 -
csrf攻击原理
CSRF 全拼为 Cross Site Request Forgery, 跨站请求伪造.CSRF指的是攻击者盗用了你的身份,以你的名义发送恶意的请求,给你造成个人隐私泄露及财产安全. CSRF攻击的原理: ①用户正常登录A银行网站, ②A网站返回cookie信息给用户,浏览器保存cookie信息 ③在A网站没有...转载 2018-09-07 12:13:48 · 458 阅读 · 0 评论 -
session的概念,和使用
session是一个概念,一套方案,用于解决用户名和密码存储区你cookie中不安全的问题。为什么不安全?因为如果有人拿到浏览器中的cookie,那么就可以伪造转账的请求。Session的工作机制:浏览器传用户名和密码之后,session会将username加密生成一个,session_id,然后再返回到浏览器中。黑客不知道加密方式,所以授权信息更加安全。加密的方式,可以用MD5s...原创 2018-09-07 12:09:30 · 685 阅读 · 0 评论 -
类 对象 方法的区别
类就是对一类事物的总称例如:吉普车、跑车、垃圾车等等他们都是属于汽车这个类的汽车就是一个类,这个类代表了所有的车,虽然有各种各样的车但是它们都有一些共同的特性:比如它们都有车门、发动机、变速箱等对象就是类的实例比如上面的汽车类有很多种分类,有跑车、轿车、越野车等它们的基本构造都是类似的这时候我们就称跑车、轿车、越野车等属于汽车类的对象或实例方法通俗来讲就是实例或对象拥有的一些功...转载 2018-09-07 11:16:05 · 332 阅读 · 0 评论 -
cookie
什么是cookie:http的请求是无状态的。用户在浏览器中提交用户和密码,服务器返回用户名和密码、有效期,存储到浏览器中设置cookie,应该使用Response的对象上设置,有一个方法叫做“”set_cookie”此方法,有很多参数,max_age(最长过期时间,以秒技术),expires(也是过期时间,可以用datetime),path 设置此域名下某些路径能用,domain 指定域...原创 2018-09-07 11:10:50 · 101 阅读 · 0 评论 -
python上传文件
需要使用request,OS,render_template,secure_filename在模板办文件中,input的 type = file # 文件上传笔记:1. 在模版中,form表单中,需要指定`encotype='multipart/form-data'`才能上传文件。2. 在后台如果想要获取上传的文件,那么应该使用`request.files.g...转载 2018-09-07 10:24:17 · 2702 阅读 · 0 评论 -
WTForms
# WTForms笔记:这个库一般有两个作用。第一个就是做表单验证,把用户提交上来的数据进行验证是否合法。第二个就是做模版渲染。### 做表单验证:1. 自定义一个表单类,继承自wtforms.Form类。2. 定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一致。3. 在需要验证的字段上,需要指定好具体的数据类型。4. 在相关的字段上,指...转载 2018-09-06 11:40:26 · 499 阅读 · 0 评论 -
for_statement
for循环在 flask 中,跟if使用方法类似 dy> <ul> {% for user in users %} <li> {{ user }} </li> {% endfor %} </ul> <table> <thead...原创 2018-08-21 18:05:34 · 240 阅读 · 0 评论 -
if_Statement
在python基础中,基本的语句是 if 判断条件: return 返回值else: return 返回值flask 中 基本语句是 {% if 参数 判断条件 %}: return 返回值{% elif 参数 判断条件 %}: 返回值(不用加return,也不用单引号){...原创 2018-08-21 16:00:32 · 571 阅读 · 0 评论 -
template讲解
flask支持将所有的页面,统一放到template中管理,主APP文件中只是引用#步骤1,在template中写页面#步骤2,导入template#步骤3,在视图函数中,response中,使用 render_template('posts/list.html')示例代码:from flask import Flask,render_templateapp = Fl...原创 2018-08-17 15:46:46 · 210 阅读 · 0 评论 -
Response返回值详解
return的信息只能处理 ,元组,字符串,和非Response对象如果是字典,列表,可以得自定义Response这个类,就可以用了。from flask import Flask,Response,jsonifyimport jsonapp = Flask(__name__)@app.route('/')def index(): return 'xxxxx'@ap...原创 2018-08-17 14:05:01 · 22475 阅读 · 0 评论 -
for循环实现99乘法表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> &原创 2018-08-22 18:50:31 · 451 阅读 · 0 评论 -
custom_url_converter
url转化,其实继承于Baseconvert,所以自定义的时候,继承这个类就可以。#实现需求,一个url中必须包含手机号#第一步先引入 父类#第二步,继承父类,自定义一个转化器#初始化这个tel这个字符url格式#第五步,将定义好的tel使用用到url中from flask import Flaskfrom werkzeug.routing import BaseConve...转载 2018-08-16 20:44:33 · 332 阅读 · 0 评论 -
redirect重定向
重定向分为301 和 302一般没有登录跳转到登录界面,需要用302示例代码from flask import Flask,request,redirect,url_forapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'@app.route('/logi...转载 2018-08-16 20:42:44 · 556 阅读 · 0 评论 -
url_for笔记
# url_for笔记:### `url_for`的基本使用:`url_for`第一个参数,应该是视图函数的名字的字符串。后面的参数就是传递给`url`。如果传递的参数之前在`url`中已经定义了,那么这个参数就会被当成`path`的形式给`url`。如果这个参数之前没有在`url`中定义,那么将变成查询字符串的形式放到`url`中。```python@app.route('/pos...转载 2018-08-15 16:42:53 · 1073 阅读 · 0 评论 -
url与视图函数的映射
传递参数的时候,路径中有几个参数,def 函数的时候,也得传进去几个参数传递参数的语法是:`/<参数名>/`### 参数的数据类型:1. 如果没有指定具体的数据类型,那么默认就是使用`string`数据类型。2. `int`数据类型只能传递`int`类型。3. `float`数据类型只能传递`float`类型。4. `path`数据类型和`string`有点类似,都是...转载 2018-08-15 16:41:09 · 569 阅读 · 0 评论 -
config笔记
###使用 app.config.from_project(config)分为两步走1.新建config文件,写上 DEBUG = True2.在主APP文件中,导入 import config ,在APP下面,写入app.config.from_project(config) ###使用 app.config.from_pyfile("config.py")分为两步...转载 2018-08-15 10:58:36 · 154 阅读 · 0 评论 -
template传参数
###将参数统一在视图函数中定义成字典response中,使用 **字典名变成关键字参数在html中引用字典,<p>{{ username }}</p>示例代码:from flask import Flask,render_templateapp = Flask(__name__)@app.route('/')def hello_world...原创 2018-08-17 16:38:30 · 2970 阅读 · 0 评论 -
flask 宏基本使用方法,和引入注意事项
宏,macro,类似于函数,都需要定义,名字、参数。定义好之后,能直接拿过来用。不同点是 宏没有返回值,函数有;宏需要结束的符号,函数不需要。###基本示例代码如下{% macro input(name,value="",type="text")%} <input type="{{ type }}" name="{{ name }}" value="{{ value...原创 2018-08-23 11:44:58 · 772 阅读 · 0 评论 -
app.add_url_rule 和 app.route
from flask import Flask,url_forapp = Flask(__name__)@app.route('/',endpoint='index')#底层其实是使用add_url_rule实现的def hello_world(): return 'Hello World!'def my_list(): return '我是列表页面'app...原创 2018-08-27 19:17:28 · 1377 阅读 · 0 评论 -
父模板 与 子模板
{% extends 'common.html' %}指明继承的父模板,需要相对 template绝对路径{% block title %} 首页{% endblock %}{% block body %} {{ super() }} 在body这个block中还可以调用 title block 中的代码,使用格式为{{ self.title() }} ...原创 2018-08-24 11:31:04 · 896 阅读 · 0 评论 -
自定义时间过滤器
###实现步骤#第一步,引导入 datetime#第二步,引入一个创建时间,或者 直接写死一个时间#第三步,注册一个时间过滤器#第四步,实现过滤器的代码#第五步,在模板中调用 示例代码:一、字典中的代码 'create_time': datetime(2017,10,20,16,19,0)二、过滤器代码@app.template_filter(...原创 2018-08-21 12:19:34 · 545 阅读 · 0 评论 -
自定义过滤器
过滤器就是一个函数,所以自己写过滤器,其实就是重新写一个函数。###实现需求,将 字符串 hello 替换成 空的字符串###第一步,在jinjia2中注册###第二步,重新写函数###第三步,在模板中调用此函数示例代码:@app.template_filter('cut')#通过公视图函数注册此过滤器,过滤器的名字为 cutdef cut(value): v...原创 2018-08-21 10:52:08 · 255 阅读 · 0 评论 -
模版继承笔记:
### 为什么需要模版继承:模版继承可以把一些公用的代码单独抽取出来放到一个父模板中。以后子模板直接继承就可以使用了。这样可以重复性的代码,并且以后修改起来也比较方便。### 模版继承语法:使用`extends`语句,来指明继承的父模板。父模板的路径,也是相对于`templates`文件夹下的绝对路径。示例代码如下:`{% extends "base.html" %}`。###...原创 2018-08-23 19:11:28 · 126 阅读 · 0 评论 -
flask加载静态文件
1.加载静态文件需要使用 url_for ,第一个参数为 static,第二个参数 为 file = ‘’(同样的绝对路径)2.静态文件包含,js,css,images等文件示例语法为:<head> <meta charset="UTF-8"> <title>Title</title> <link re...原创 2018-08-23 19:10:57 · 1077 阅读 · 0 评论 -
set_with,在模板文件中设置变量
#设置变量,不仅仅是在视图函数里面的能设置,在模板文件也用set、with#也能用。set 设置的变量在整个文件中都能用,with只能用在endwith之前 {% set name = '梁实秋' %} <p><H1>{{ name }}</H1></p> {% with age = 23 %} <...原创 2018-08-23 17:31:47 · 193 阅读 · 0 评论 -
include标签_flask
页面上共性的代码,比如顶部和底部,都可以抽离到comment,再通过include引用过来如果想使用父级模板的时候,跟 macro 不一样,直接使用就可以引用的路径,跟“import”一样,也得从“template”绝对路径引用示例代码:<!DOCTYPE html><html lang="en"><head> <meta c...原创 2018-08-23 16:28:15 · 422 阅读 · 0 评论