URL篇
静态路由
@app.route(‘/‘) def hello_world(): # 变量可以通过赋值传到前端,前端可以通过{{}}渲染 return render_template(‘t1.html‘, name=‘t1‘, age=16) @app.route(‘/services‘) def services(): return ‘Services‘ @app.route(‘/about‘) def about(): return ‘About‘ # 相对projects解释类似于文件夹解释形式,指向某一个文件夹下的某个文件 @app.route(‘/projects/‘) @app.route(‘/projects_our‘) # 可以定义多个URL到同一个视图函数上,Flask支持 def projects(): return ‘Projects‘ @app.route(‘/login‘,methods=["GET","POST"]) def login(): return render_template(‘login.html‘, req_method=request.method)
动态路由
# 动态路由 @app.route(‘/user/<username>‘) def user(username): print username return username # 路由转换器:指定参数类型 # flask提供3种:int(整形)|float(浮点型)|path(路径,并支持一个/) @app.route(‘/user/<int:user_id>‘) def user(user_id): print user_id return ‘User_id:%s‘%user_id
自定义路由规则
# flask不提供正则表达的形式的URL匹配 # 可通过定义完成 # 1、from werkzeug.routing import BaseConverter # 2、自定义类 #转换器 class RegexConverter(BaseConverter): def __init__(self,url_map,*items): super(RegexConverter,self).__init__(self) # print items # (u‘[a-z]{3}[A-Z]{3}‘,) # print url_map # URL 的一个MAP对象,类似路由表 self.regex = items[0] # 3、要将定义的类注册到APP的url_map中,定义名称 # app.url_map.converters[‘regex‘] = RegexConverter # 4、使用 @app.route(‘/user/<regex("[a-z]{3}[A-Z]{3}"):username>‘) def user(username): print username return ‘Username:%s‘ % username
时间: 2024-10-07 10:11:02