动态网站实现

(缓缓来迟的下一篇。。。顺便预告,后面会讲如何用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/

相关文章
相关标签/搜索