flask之jinjia模板语法,拉取omdb api

模板主要的语法就是继承母版,集成模块。

继承母版的语法是:

{% extends "common/home.html" %}

母版里集成模块的语法是: 

    {% block head %}
        {% include './common/header.html' %}
    {% endblock %}

拉取电影资源,网址是:OMDb API - The Open Movie Database

 flask之jinjia模板语法,拉取omdb api_第1张图片

免费申请api接口后,可以使用搜索关键词和电影id两种方式,搜索结果是个列表,电影id获取的是电影的详细信息。

http://www.omdbapi.com/?apikey=[yourkey]&s=搜索词
http://www.omdbapi.com/?apikey=[yourkey]&i=电影id

 app.py:

from flask import Flask, render_template
import requests

app = Flask(__name__)


@app.route('/')
def main():
    # Here is your key:    
    rawData = requests.get("http://www.omdbapi.com/?apikey=你的key&s=batman&page=1")
    movies = rawData.json()
    return render_template("index.html", movies=movies)


@app.route('/')
def movie_by_title(imdbID):   
    rawData = requests.get(f"http://www.omdbapi.com/?apikey=你的key&i={imdbID}")
    movie = rawData.json()
    return render_template("movie.html", movie=movie)


if __name__ == '__main__':
    app.run(debug=True)

common/header.html:


母版

common/footer.html

common/nav.html

common/home.html




    {% block head %}
        {% include './common/header.html' %}
    {% endblock %}


{% block nav %}
    {% include './common/nav.html' %}
{% endblock %}
{% block content %} {% endblock %}
{% block footer %} {% include './common/footer.html' %} {% endblock %}

母版home.html里的include,路径是从templates开始的,为什么呢?因为继承母版的页面是在templates目录里,以app.py里面加载的模板为出发点,来定位其他路径。

index.html

{% extends "common/home.html" %}

{% block content %}
    {% for movie in movies.Search %}
        
...
{{ movie.Title }}

{{ movie.Year }}

详情
{% endfor %} {% endblock %}

movie.html

{% extends "common/home.html" %}

{% block content %}
    
...
{{ movie.Title }}

Year:{{ movie.Year }}

Runtime:{{ movie.Runtime }}

Actors:{{ movie.Actors }}

{{ movie.Actors }}

{{ movie.Year }}

{{ movie.Plot }}

{% endblock %}

flask之jinjia模板语法,拉取omdb api_第2张图片

发现flask里面的reqirements.txt文件,不能唤醒pycharm来安装依赖包啊。Django就可以啊,或者其他python项目,pycharm识别到没有安装的包,自动会弹出安装的按钮来,超方便的。不知道flask为什么不触发。还要有一个,flask启动后,修改代码,刷新浏览器并未有任何改变,必须要重启flask项目,这是为什么啊?Django就可以啊,修改完刷新浏览器就可以了。

flask之jinjia模板语法,拉取omdb api_第3张图片

你可能感兴趣的:(Flask,flask,python,后端)