flask 学习 笔记,day01(基于python 2)
来源:互联网 发布:手机数据还可以找回吗 编辑:程序博客网 时间:2024/06/07 02:25
# coding=utf-8
from flask import Flask,abort,make_response,request
# 导入werkzeug的routing模块
from werkzeug.routing import BaseConverter
# 扩展命令行
from flask_script import Manager
# 导入flask
# 创建应用程序实例
# 创建路由和视图函数
# 启动服务器
# 创建应用程序实例
# __name__参数的主要作用是为了确定程序所在的目录
# 任意字符串作为参数,都可以访问static目录下的文件,但是,不可以使用python内置的模块名,必须传入参数,只接收字符串
# app = Flask(__name__)
app = Flask('abcdefg')
# 把Manager类和应用程序实例进行关联
manager = Manager(app) 在最下面运行时起作用
路由可以重复,但是会匹配到上面的内容,不是下面的把上面的重写,因为url在django内
是以列表的形式存在的故一旦先匹配到了便不会再往下走。
# 装饰器路由可以重复,视图函数不允许重名,但匹配过程是从上到下依次匹配
@app.route('/',methods=['GET'])
def hello_2017():
return '<h1>hello 2017</h1>'
# 创建路由,methods关键字的主要作用是指定请求方法
@app.route('/',methods=['GET'])
def hello():
return '<h1>hello world</h1>'
# 动态路由参数,语法格式是以<>进行定义
# <>中默认的数据格式string类型,可以兼容数值类型
# int或float,整形和浮点型互不兼容
@app.route('/hello/<id>')
def index(id):
return 'hello %s' % id
动态路由设置
# 动态路由参数本身只可以限制参数的数据类型,不能限制参数的长度
# 正则URL,通过自定义正则类来实现
# 在web开发中,正则url主要应用在静态文件的访问
# 正则url,限制访问,优化访问
class Regex(BaseConverter):
def __init__(self,url,*args):
super(Regex, self).__init__(url) super 方法继承父类
self.regex = args[0]
# 自定义的正则类,需要和flask应用程序实例进行关联
app.url_map.converters['re'] = Regex
# @app.route('/regex/<int:id>')
@app.route('/regex/<re("[a-z]{3}"):id>') re("[a-z]{3}"):id 前面的re 表示匹配规则 后面的id 才是真正的url内容
def regex_url(id):
return 'hello %s' % id
# 返回状态码,flask中有两种实现:return,abort
# return可以自定义返回状态码,可以实现不符合http协议的状态码,errno=666,errmsg='查询数据库异常'
# 自定义状态码的作用是为了实现前后端数据交互的方便
@app.route('/status')
def response_code():
return 'hello python',666
# abort类似于raise,
# abort语句只会抛出符合http协议的状态码
# abort语句执行后,下面的语句不会被执行
@app.route('/aborts')
def response_codes():
abort(404)
return 'hello python',666
# 自定义错误页面,errorhandler会接收abort函数抛出的异常状态码,
@app.errorhandler(404)
def errors(e):
return 'error2017: %s' %e
# 状态保持
# http协议是无状态,实现状态保持cookie,session
# 设置cookie
@app.route('/cookie')
def set_cookie():
resp = make_response('set cookie success') set cookie success 返回到页面显示的内容
resp.set_cookie('name','python9')
return resp
# 获取cookie,request对象来获取客户端发送的请求参数
@app.route('/cookies')
def get_cookie():
req = request.cookies('name')
return req
if __name__ == '__main__':
# 查看当前应用程序所有的路由映射
print app.url_map
app.run(debug=True)
# manager.run()
阅读全文
0 0
- flask 学习 笔记,day01(基于python 2)
- Python Flask 学习笔记
- python学习笔记-基于flask的web服务提供
- 基于python的web框架——Flask 学习笔记
- Flask之旅《Flask Web开发:基于Python的Web应用开发实战》学习笔记
- 基于Python的Flask Web开发 笔记 (2)
- Flask学习笔记-- 2
- Python学习-day01
- python学习day01
- Python学习day01
- java 学习笔记 day01
- JQuery学习笔记---Day01
- JavaFx2学习笔记day01
- c++ 学习笔记 day01
- mysql 学习笔记 day01
- Hadoop学习笔记Day01
- Memcached学习笔记day01
- linux学习笔记day01
- 95. Unique Binary Search Trees II
- ubuntu16.04环境下使用Arduino IDE编译和烧写nodemcu-esp8266程序
- nyist-2017软件计科联合新生赛题解
- 两种比较好的单例实现
- 点云地图的2维投影-1
- flask 学习 笔记,day01(基于python 2)
- [DP] ZROI 2017 提高3 T3 建筑
- BZOJ1412: [ZJOI2009]狼和羊的故事
- 腾讯2017[编程题] 游戏任务标记
- 升级rxlifecyle引起错误com.google.code.findbugs:jsr305
- response简介
- error C2039: “SetDefaultDllDirectories”: 不是“`global namespace’”的成员
- 字符串单词翻转总结几种常见方法
- 一个研究生毕业以后的人生规划