23.用Flask进行简单网页编辑

新建一个项目,选择flask,新建一个目录.

app.py为用python编辑,处理网页请求

/templates目录下为网页页面,app.py用"@app.route('/')"接受请求,并根据请求的不同地址,返回不同页面

网页页面用html语言编辑.

<table></table> 为一个表格.

<table border="1">
{% for key,value in task.items() %} <!--items用来迭代,是一个方法,需要加().-->
<tr>
<td>{{ key }}</td> <!--迭代后的数据为[{](),(),()],字典变为包含元组的列表-->
<td>{{ value }}</td>
</tr>
{% endfor %}
</table>


<form></form>为一个表单,成对出现.
<form action= "{{url_for("result")}}" method= "POST">
<!---action不要用http://localhost:5000写死网页,避免域名或端口号变更导致代码无效,用url_for('result')去匹配存在的网页,生成地址--->
<p>姓名:<input type="text" name="姓名"></p>
<p>年龄:<input type="text" name="年龄"></p>
<p>性别:<input type="text" name="性别"></p>
<p>地址:<input type="text" name="地址"></p>
<p><input type="submit" value="提交"></p>
</form>
 <p></p>为一个标签.

 

from flask import Flask,render_template,request   #request模块在flask中,用时加载
import datetime

app = Flask(__name__)


# @app.route('/')
# def hello_world():
# return 'Hello World!'
# @app.route('/')
# def main():
# return 'Hello World!'

#通过访问路径的不同,控制访问不同函数
@app.route('/user/<name>')
def welcome(name):
return '你好,%s'%name


#访问路径可以传入一个字符串,整型还可以float
@app.route('/user/int:<id>')
def welcome2(id):
return '你好,第%d号会员'%id





#render_template返回渲染后的网页
@app.route('/')
def index():
time = datetime.date.today() ##传入普通变量 日期函数是一个方法需要加()
list = ['张三','李四','王五'] #传入列表类型
task = {'国家':'中国','省市':'天津','区县':'蓟县'} #传入字典类型

return render_template('index.html',var = time,list = list,task = task)
#html不识别传入的变量名,可以直接用list赋值,便于识别

#表单提交
@app.route('/test/register')
def register():
return render_template("/test/register.html")

#接收表单提交的路由需要指定method/post
@app.route('/result' ,methods= ['POST','GET'])
def result():
if request.method == 'POST':
result = request.form
return render_template('/test/result.html',result=result)


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


网页index.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>这是一个简单的首页</title>
</head>
<br>
你好,今天是{{ var }},欢迎光临.<br/> <!---传入变量要调用用两个大括号括起来--->
今天值班的有:<br/> <!---<br>和<br/>实现同样功能,为一个标签---->
{% for i in list %} <!---控制结构用大括号加百分号包起来,结束要加endfor,if也一样--->
<li>{{i}}</li>
{% endfor %}
<table border="1">
{% for key,value in task.items() %} <!--items用来迭代,是一个方法,需要加().-->
<tr>
<td>{{ key }}</td> <!--迭代后的数据为[{](),(),()],字典变为包含元组的列表-->
<td>{{ value }}</td>
</tr>
{% endfor %}
</table>

</body>
</html>



网页register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action= "{{url_for("result")}}" method= "POST">
<!---action不要用http://localhost:5000写死网页,避免域名或端口号变更导致代码无效,用url_for('result')去匹配存在的网页,生成地址--->
<p>姓名:<input type="text" name="姓名"></p>
<p>年龄:<input type="text" name="年龄"></p>
<p>性别:<input type="text" name="性别"></p>
<p>地址:<input type="text" name="地址"></p>
<p><input type="submit" value="提交"></p>


</form>

</body>
</html>

网页result.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
注册成功,注册信息为:
<table border="1">
{% for key,value in result.items() %} <!--items用来迭代,是一个方法,需要加().-->
<tr>
<th>{{ key }}</th> <!--迭代后的数据为[{](),(),()],字典变为包含元组的列表-->
<td>{{ value }}</td>
</tr>
{% endfor %}
</table>


</body>
</html>


posted @ 2020-05-26 15:44  十名知花香  阅读(647)  评论(0)    收藏  举报