flask 路由规划(blueprint)】的更多相关文章

# 统一路由蓝牙规划 # file:blueprint_route.py from flask import Blueprint route_test = Blueprint("home",__name__) # 路由只有通过app注册后才生效 """ 统一路由规划的优点: 统一前缀 当网站结构复杂后可维护 """ @route_test.route("/") def home(): return &quo…
需求分析: 当一个庞大的系统中有很多小模块,在分配路由的时候怎么处理呢?全部都堆到一个py程序中,调用@app.route? 显然这是很不明智的,因为当有几十个模块需要写路由的时候,这样程序员写着写着自己就晕掉了.同时也违背了面向对象设计原则中的控制反转原则.模块与模块之间应该不要太紧密的依赖,高级层级模块和低级层级的模块之间的依赖应该有一层抽象来实现. Flask框架中,我们可以使用blueprint蓝图来解耦路由分配问题,实现不同业务模块之间的较为松散的依赖. 1. blueprint的实现…
目录 Flask - Flask的蓝图(BluePrint) 一. 初始Flask蓝图 进阶Flask蓝图 使用蓝图做一个增删改查 1.使用蓝图进行web应用搭建: 2.使用Flask蓝图,查看学生信息 3. 使用Flask蓝图,添加一个学生 4. 使用Flask蓝图,修改学生信息 5. 蓝图目录 Flask - Flask的蓝图(BluePrint) 百度说蓝图这个词有两个意思: 1.通常用铁氰化和铁盐敏化的纸或布,曝光后用清水冲洗显影晒成的蓝底白图的相纸,特别供晒印地图.机械图.建筑图样用.…
Flask蓝图提供了模块化管理程序路由的功能,使程序结构清晰.简单易懂.下面分析蓝图的使用方法 假如说我们要为某所学校的每个人建立一份档案,一个很自然的优化方式就是这些档案如果能分类管理,就是说假如分为老师.学生.后勤人员等类别,那么后续查找和管理这些档案就方便清晰许多.Flask的蓝图就提供了类似“分类”的功能. 下面先上一张较大型程序的组织结构图   1 可以看到在app文件夹下有两个文件夹main和auth内含有视图函数,而main和auth就是注册的两个蓝图. 1. 蓝图的创建及注册 在…
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…
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 学习如何使用 Blueprint 介绍 接触过 DotNet MVC 开发的朋友应该都对 路由 的概念有一定的了解.所谓 路由 就是指我们访问一个网站时,这个网站各个页面访问时对应的 URL 地址.在我们的网站不是很复杂时,我们可以使用最原始的方法来设计路由,但是对待一个大型项目如果我们的路由不能进行统一管理和配置的话,那么对于项目后期来说,是无法维护的…
今日内容 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种请求方式:…
路由 # -*- coding: utf-8 -*-   from flask import Flask, url_for                app = Flask(__name__)                             @app.route('/index/<int:year>/<string:mon>', endpoint='index', defaults={"name": 'peach', },              …
一.蓝图 1.什么是蓝图?(WHAT) 1)蓝图就是模块化处理的类 2)用于实现单个应用的视图.模板.静态文件的集合 总结:蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能 2.为什么使用蓝图?(WHY ,  WHERE) 1)我们所有的视图函数都写在了一个文件当中,当我们的业务越来复杂的时候.视图函数也会变得越来越多,导致阅读不方便,维护起来困难等难题 2)当我们以功能或模块将不同的代码进行分离,写入对应的蓝图里,可以加速我们管理项目的速度,解决上诉问题.…
什么是路由 """ 客户端(例如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 _…
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末尾没有”/“…
""" 蓝图:为开发者提供的目录结构 - 使用: 1. 根目录创建一个跟项目名一样的文件 - 创建后第一步,在这个文件夹中添加一个 __init__.py 的配置文件 - 在这个配置文件中配置蓝图,管理文件: from flask import Flask from .views.login import q1 # 导入视图文件 def create_app(): app = Flask(__name__) app.register_blueprint(q1, url_pre…
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规…
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…