Fork me on GitHub

初学Flask(1)

今天在学习Flask,边看官方文档一边动手运行例子,以注释的形式写了一些笔记,分享给大家。

Flask官方文档,快速入门:

ex1:

#coding:utf-8
#######################
# 1.URL的解析
######################

from flask import Flask
app = Flask(__name__)

@app.route('/a') 
#这里是用于测试笔记2的
def a():
    return 'test a'
    
@app.route('/user/<username>')
def show_user_profile(username):
    # show the user profile(简介) for that user
    # 可以接收url传递的变量
    return 'User %s' % username

@app.route('/post/<int:post_id>')
def show_post(post_id):
    # show the post with the given id, the id is an integer
    # 在地址后面加/post/211654,页面显示Post 211654
    return 'Post %d' % post_id
    
@app.route('/hello') #修饰url
def hello_world():
    return 'Test debug'

@app.route('/')
def index():
    return 'Index Page'

if __name__ == '__main__':
    app.debug = True  # 作用是修改完文件,服务器自动重启
    app.run(host = '0.0.0.0')
    
# 笔记:
# 1.route(线路)——传入线路(url)触发route下面的方法
# 2.注意区别
# route('/a/')和route('/a') 系统不管是'/a/'还是'/a'
# 都会为其自动增加'/','/a/'正常运行,'/a'报错!
#   

 

ex2:

#coding:utf-8
#######################
# 2.URL的构建
######################

# url_for()函数是用来构建指定函数的URL
from flask import Flask, url_for
app = Flask(__name__)

@app.route('/')
def index():
    pass
    
@app.route('/login')
def login():
    pass
    
@app.route('/user/<username>')
def profile(username):
    pass
    
# 告诉 Flask 我们正在处理一个请求,而实际上也许我们
# 正处在交互 Python shell 之中,并没有真正的请求(后面再说)
with app.test_request_context(): 
    print url_for('index')
    print url_for('login')
    print url_for('login', next='/')
    print url_for('profile', username='Xue Wei Han')
    

#为什么不在把 URL 写死在模板中,反而要动态构建?有三个很好的理由:

# 1.反向解析通常比硬编码 URL 更直观。同时,更重要的是你可以只在一个地方改变 URL ,而不用到处乱找。
# 2.URL 创建会为你处理特殊字符的转义和 Unicode 数据,不用你操心。
# 3.如果你的应用是放在 URL 根路径之外的地方(如在 /myapplication 中,不在 / 中) 
# url_for() 会为你妥善处理。

 

posted @ 2015-06-05 22:32  削微寒  阅读(580)  评论(0编辑  收藏  举报