Flask -- 路由】的更多相关文章

Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. “微”(m…
目录 Flask - 路由系统 @app.route()装饰器中的常用参数 methods : 当前 url 地址,允许访问的请求方式 endpoint:反向url地址,默认为视图函数名(url_for) defaults:视图函数的参数默认值{"nid":1} strict_slashes : url地址结尾符"/"的控制 False : 无论结尾 "/" 是否存在均可以访问 , True : 结尾必须不能是 "/" red…
Flask路由系统 我们之前了解了路由系统是由带参数的装饰器完成的. 路由本质:装饰器和闭包实现的. 设置路由的两种方式 第一种: @app.route('/index') def index(): return "index" 我们之前用的装饰器都是不带参数的,执行的时候直接是将函数名作为参数传给装饰器执行.那么带参数的装饰器时如何执行的呢? 我们看一下源码:先从route点进去. 先去掉@执行 def route(self, rule, **options): "&quo…
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST"]) 为什么要这么用?其中的工作原理我们知道多少? 请关注跟DragonFire学Flask 之 路由系统 ,这里有你想要的答案 1. @app.route() 装饰器中的参数 如果不明白装饰器 点击这里 methods : 当前 url 地址,允许访问的请求方式 @app.route("/inf…
什么是路由 """ 客户端(例如web浏览器)把请求发送给Web服务器,Web服务器再把请求发送给Flask程序实例. 程序实例需要知道对每个URL请求运行那些代码,所以保存了一个URL到Python函数的映射关系. 处理URL和函数之间关系的程序称之为路由. """ 看个简单完整的的例子 #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask app = Flas…
route()装饰器把一个函数绑定到对应的URL(可以是多个)上 @app.route('/') def index(): return 'Index Page' @app.route('/hello')@app.route('/hi') def hello(): return 'Hello World' 变量规则 给URL添加变量,用<变量名>标记,这个部分可以作为参数传递到函数中 @app.route('/hello/<name>') def hello(name): retu…
1 路由  1.1app.url_map 查看所有路由 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): """定义视图函数""" print(app.url_map) return "hello flask" @app.route('/index') def index(): return 'index' if _…
今日内容 1.路由的分发,以下两种方式效果一样,但是都能指向同一个函数 from flask import Flask app=Flask(__name__) #第一种方式 @app.route('/my_de') def my_de(): return '黑河' #第二种方式 app.add_url_rule( '/my_detail' , view_func=my_de) if __name__== '__main__': app.run(debug=True) 允许请求进入的8种请求方式:…
需求分析: 当一个庞大的系统中有很多小模块,在分配路由的时候怎么处理呢?全部都堆到一个py程序中,调用@app.route? 显然这是很不明智的,因为当有几十个模块需要写路由的时候,这样程序员写着写着自己就晕掉了.同时也违背了面向对象设计原则中的控制反转原则.模块与模块之间应该不要太紧密的依赖,高级层级模块和低级层级的模块之间的依赖应该有一层抽象来实现. Flask框架中,我们可以使用blueprint蓝图来解耦路由分配问题,实现不同业务模块之间的较为松散的依赖. 1. blueprint的实现…
raise FormDataRoutingRedirect(request)FormDataRoutingRedirect: A request was sent to this URL (http://127.0.0.1:5000/resource/vender) but a redirect was issued automatically by the routing system to "http://127.0.0.1:5000/resource/vender/".  The…
@app.route() methods:当前url地址,允许访问的请求方式 @app.route("/info", methods=["GET", "POST"]) def student_info(): stu_id = int(request.args.get("id")) return f"{stu_id}" # Python3.6的新特性 f"{变量名}" endpoint:反…
路由设置的俩种方式 @app.route('/xxx') def index(): return 'index' ------------------------------------------ def index(): return "index app.add_url_rule('/xxx',None,index)   注意事项: - 不要让endpoint重名 - 如果重名函数也一样要相同 参数 rule, url规则 view_func, 视图函数名称 endpoint=None,…
路由系统 @app.route('/user/<username>') @app.route('/post/<int:post_id>') @app.route('/post/<float:post_id>') @app.route('/post/<path:path>') @app.route('/login', methods=['GET', 'POST']) 常用路由系统有以上五种,所有的路由系统都是基于一下对应关系来处理: DEFAULT_CONVE…
路由末端带有“/” app.route('/test/') 在浏览器中输入http://127.0.0.1:5000/test/ 和http://127.0.0.1:5000/test都能访问 路由末端不带“/” app.route('/test') 在浏览器中输入http://127.0.0.1:5000/test 能正常访问, 输入http://127.0.0.1:5000/test/ 报错Not  found 总结:当我们设计路由时,如果后面加了‘/’ ,当用户输入的url末尾没有”/“…
路由 # -*- coding: utf-8 -*-   from flask import Flask, url_for                app = Flask(__name__)                             @app.route('/index/<int:year>/<string:mon>', endpoint='index', defaults={"name": 'peach', },              …
Flask框架提供了请求重定向功能,只需要使用 redirect_to即可, 示例代码如下: from flask import Flask, render_template, request, redirect, session app = Flask(__name__) app.secret_key = 'flask' app.debug = True """ redirect_to: 会将请求index 重定向到index2 """ @ap…
一.路由设置的两种方法 1.装饰器 @app.route('/index/') def index(): return 'Hello World!' 2.源码 route->decorator->add_url_rule(rule, endpoint, f, **options) def index(): return 'Hello World!' app.add_url_rule('/index/', None, index) 注意:endpoint的值不能一致 二.参数 rule URL规…
# 统一路由蓝牙规划 # file:blueprint_route.py from flask import Blueprint route_test = Blueprint("home",__name__) # 路由只有通过app注册后才生效 """ 统一路由规划的优点: 统一前缀 当网站结构复杂后可维护 """ @route_test.route("/") def home(): return &quo…
1.说明 由于flask并不支持直接使用正则表达式来匹配路由,我们可以使用werkzeug.routing的BaseConverter来实现 2.代码 from flask import Flask #而在某些特定的需求下,需要动态匹配一些有特殊要求的字符,这就可以考虑用正则表达式的方式传入 from werkzeug.routing import BaseConverter #编写正则转化的类 class RegexConverter(BaseConverter): def __init__(…
#coding=utf-8 from flask import Flask from werkzeug.routing import BaseConverter class RegexConverter(BaseConverter): def __init__(self, url_map, *items): super(RegexConverter, self).__init__(url_map) self.regex = items[0] app = Flask(__name__) app.u…
URL Route URL 后接 / 作为目录级访问 URL 后不接 / 作为文件级访问 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Index Page' @app.route('/about') def about(): return 'The about page' 说明 string (default) accepts any text without a slash…
1.参数类型intfloatstringpath uuid<any(a, b): an> 枚举, an必须是any中的值2.多个url指向一个视图函数是可行的3.url_for('蓝图名字.函数名字', 变量名称=value)    注意:是蓝图的名字,不是变量的名字4.Flask的四大内置对象requestSessiongconfig(模板) app.config(python代码)…
第一种注册方法 from flask import Flask app = Flask(__name__) @app.route("/hello") # 第一种注册方法 def hello(): return "hello python!!!" if __name__ == "__main__": app.run(host='127.0.0.1', port=8006, debug=True) 第二种注册方法 from flask import…
视频06: 定义静态方法的两种方式: 1.在方法上方加上装饰@staticmethod 2.在方法上方加上装饰@classmethod  方法中要加参数cls  如:def search_by_isbn(cls,self,isbn): #httper.py import requests class HTTP: @staticmethod # 把当前方法定为静态方法,把此方法封闭在请求类中是为了便于扩展 def get(url,return_json=True): r = requests.ge…
视频01: 略...... ———————————————————————————————————————————————————————————— 视频02: 搜索需要外部数据源,也就是需要外部的API. 图书数据搜索用到的几个地址: 1.关键字搜索http://t.yushu.im/v2/book/searh?q={}&start={}&ount={} 2.isbn搜索    http://t.yushu.im/v2/book/isbn/{isbn} 把参数放在url路径中 3.豆瓣A…
一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_url_rule("/my_de",view_func=detail) 2.常用参数 ①methods methods 的值是 可迭代对象 [] () 允许请求进入视图函数的方式 种HTTP请求方式 没有时默认 只有 "GET" 实例: ②endpoint endpoint…
构建路由规则 一个 web 应用不同的路径会有不同的处理函数,路由就是根据请求的 URL 找到对应处理函数的过程. 在执行查找之前,需要有一个规则列表,它存储了 url 和处理函数的对应关系.最容易想到的解决方案就是定义一个字典,key 是 url,value 是对应的处理函数.如果 url 都是静态的(url 路径都是实现确定的,没有变量和正则匹配),那么路由的过程就是从字典中通过 url 这个 key ,找到并返回对应的 value:如果没有找到,就报 404 错误.而对于动态路由,还需要更…
Flask中的路由系统其实我们并不陌生了,从一开始到现在都一直在应用 @app.route("/",methods=["GET","POST"]) 为什么要这么用?其中的工作原理我们知道多少? 请关注跟DragonFire学Flask 之 路由系统 ,这里有你想要的答案 1. @app.route() 装饰器中的参数 如果不明白装饰器 点击这里 methods : 当前 url 地址,允许访问的请求方式 @app.route("/inf…
昨日内容回顾 1.Flask: from flask import Flask app = Flask(__name__) # 从源码中可以看出,Flask集成的run方法是由werkzeug中的run_simple方法提供的. app.run() # run_simple(host,port,obj_or_func()) obj() 对象加括号相当于调用 __call__() 方法 2.简单路由 @app.route("/index",methods=["GET"…
1.flask的路由与反向路由 from flask import Flask, request, url_for app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' @app.route('/user', methods=['POST']) # 指定请求方式,默认为GET def hell_user(): return 'hello user' @app.route('/user/<id>…