動態網站實現

(緩緩來遲的下一篇。。。順便預告,後面會講如何用Cloudant存儲數據啦)html

下一步要把靜態網站變成動態網站,咱們須要用到Flask和Jinja2。Flask是用Python編寫網站的框架(Framework )。程序的框架和圖中房子的框架的做用同樣,都是提供一個基礎,讓你能夠更快捷的實現網站或房子python

動態網站實現

Jinja2是實現動態網站的模板技術,它能夠把Python的代碼嵌入到HTML裏,就像下面:瀏覽器

動態網站實現

Jinja2的語法很奇怪下面解釋幾種:

  • 若是想要顯示變量的值,得使用兩個大括號({{}})。E.g. {{books[i]['doc']['genre']}}框架

  • 若是想要去一個list的長度,通常都是len(),在括號裏面list的名字。可是在Jinja2裏,得先寫名字,在加一個豎杆 | ,再寫length。E.g. books|lengthide

  • 若是想要一個for循環,得用{% %},再在中間寫for循環。for循環結束後還得加{% endfor %}。E.g. {% for i in range(0, books|length)%}網站

  • 若是想顯示一個url,就要用到兩個大括號({{}})和url_for方法(第一個參數,bookdetail,是告訴你跳轉到bookdetail的連接。後面的參數是多個傳入bookdetail的信息。)。E.g. <a href="{{ url_for('book_detail', booktitle=books[i]['doc']['title'], bookgenre=books[i]['doc']['genre'], bookauthor=books[i]['doc']['author/ illustrator'], booksummary=books[i]['doc']['summary'], bookrating=books[i]['doc']['rating'], bookrecommendation=books[i]['doc']['recommendation'],

booktrailer=books[i]['doc']['trailer'])}}">{{books[i]['doc']['title']}}</a>url

從瀏覽器訪問網頁時,根目錄/對應着下面圖中的index()方法。在index()方法裏,return render_template('index.html', books=books)是最重要的,用來顯示在Jinja2裏定義好的index的template,而且把books list做爲參數傳到template裏。/book_detail這個頁面對應book_detail的方法.net

動態網站實現

在命令行裏輸入如下命令能夠運行網站:

  • FLASK_APP=server.py命令行

  • python3 server.py

運行起來的網站是這樣

動態網站實現

這是電影的網站server

動態網站實現
網站地址:https://my-favorite-movies.mybluemix.net/

相關文章
相關標籤/搜索