码迷,mamicode.com
首页 > Web开发 > 详细

flask_之URL

时间:2017-07-01 20:10:03      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:浮点   定义   url   eth   routing   指定   login   base   函数   

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

 

flask_之URL

标签:浮点   定义   url   eth   routing   指定   login   base   函数   

原文地址:http://www.cnblogs.com/shangpolu/p/7103165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!