背景:当前主要为前后端的分离开发,框架中应用现成的HTML文件就可以实现通过python程序调用现成的HTML框架实现某些网页的显示。延伸是实现python程序与HTML的数据交互。
第一部分 flask之调用模板:
HTML文件显示:
前文有关于HTML的介绍,
在该例子中,HTML文件应该放置在项目文件夹内的templates文件夹内,如templates/demo/demo.html
HTML文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
</body>
</html>
该代码功能为显示一个输入框
与python代码结合:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def hello():
#return 'hello world'
return render_template('demo/demo.html')
if __name__ == '__main__':
app.run(debug=True)
其中的render_template方法会传递一个demo.html,从而调用HTML的内容
第2部分 flask之模板传参
在第一部分的基础上,通过python程序向HTML中传递参数
- 要传参,首先需要HTML需要有接收参数的位置
- 然后就是从python程序中定义相应的参数并且传递进去
HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
<h1>{{ username }}</h1>
<h2>{{ age }}</h2>
<h3>{{ books.python }}</h3>
<h4>{{ book.0}}</h4>
<h5>{{ book[0] }}</h5>
</body>
</html>
在HTML中 {{}}可以用于接收传递参数,如果没有参数传递,网页中显示的内容是这样的:
python代码传递参数:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def hello():
context = {
'username':'lcy1992',
'age':18,
'books':{'python':666,'java':777},
'book':['python','java','c++']
}
return render_template('index.html',**context)
if __name__ == '__main__':
app.run(debug=True)
其中传递参数是通过context传递的,调用的模板是index.html,然后通过render_template将参数传递进去
此时网页显示: