Flask從入門到放棄1:css
Flask中的路由app.route():html
參考來源:http://python.jobbole.com/80956/python
https://www.raspberrypi.org/learning/python-web-server-with-flask/worksheet/web
Flask是基於Werkzeug,Python WSGI實用程序庫和Jinja2(Python的模板引擎)的微型框架。flask
好比:app
app = Flask(__name__)框架
@app.route("/")函數
def hello():post
return "Hello World!"網站
要理解它,先了解一下裝飾器:
舉個例子:
# This is our decorator
def simple_decorator(f):
# This is the new function we're going to return
# This function will be used in place of our original definition
def wrapper():
print "Entering Function"
f()
print "Exited Function"
return wrapper
@simple_decorator
def hello():
print "Hello World"
hello()
運行上述代碼會輸出如下結果:
Entering Function
Hello World
Exited Function
上面是不接受傳參的裝飾器例子,下面演示一下傳參的:
def decorator_factory(enter_message, exit_message):
# We're going to return this decorator
def simple_decorator(f):
def wrapper():
print enter_message
f()
print exit_message
return wrapper
return simple_decorator
@decorator_factory("Start", "End")
def hello():
print "Hello World"
hello()
給咱們的輸出是:
Start
Hello World
End
從新看一下前面的函數
@app.route("/"):
表示傳遞一個網站,「/」是網站的主目錄,也就是http://127.0.0.1:5000/
假如把"/"改爲:'/simon',那麼就在網頁上輸入http://127.0.0.1:5000/simon
形參的規則能夠用指定的轉換器,好比下面的例子:
@app.route('/post/<int:post_id>')
def show_post(post_id):# show the post with the given id, the id is an integerreturn 'Post %d' % post_id
轉換器有下面幾種:
int:
接受整數
float:
同 int ,可是接受浮點數
path:
和默認的類似,但也接受斜線
def hello():
這個是傳輸給route的函數,裏面返回值「Hello World!」就是顯示到網頁上的內容
假如須要顯示html文件:
編寫一個html文件,命名爲index.html,好比:
<html>
<body>
<h2>Hello World</h2>
</body>
</html>
而後將return返回改爲:
return render_template('index.html')
固然,在這以前要先導入 render_template模塊
假如要導入CSS樣式,編輯CSS文件,好比style.css:
body {
background: red;color: yellow;}
上述的html也作改動:
<html>
<head>
<link rel="stylesheet" href='/static/style.css' />
</head>
<body>
<h2>Hello World</h2>
</body>
</html>
整個項目的結構以下:
├── app.py ├── static │ └── style.css └── templates └── index.html
咱們還能夠把導入模板,Flask使用
jinja模板
@app.route('/hello/<name>')
def hello(name):
return render_template('page.html', name=name)
最後的return返回一個叫page.html的文件並傳遞形參name,name正是在URL的一部分數據
新建一個文件叫page.html
<h1>Hello {{ name }}!</h1>
這裏咱們忽略html的其餘結構
網址輸入:http://127.0.0.1:5000/hello/paul
咱們就能夠看到Hello paul的字樣