Flask (一)
官网:https://dormousehole.readthedocs.io/en/latest/
Hello Workd
1.创建一个空项目和新的虚拟环境。安装flask的模块
- 直接执行
# Flask_test_demo.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello world!'
# 将url中的字符串映射到函数
@app.route('/test/<name>')
def add(name):
return "hello %s" % name
# 将url中的整型映射到函数
@app.route('/test/<int:>')
def add(name):
return "hello %s" % name
@app.route('/test/<int:id>') # 另外还有float类型的映射
def welcome2(id):
return "hello %d 号的会员" % id
if __name__ == '__main__':
# app.run()
app.run(debug=True) # 开启debug 模式,方便调试
启动服务生成port:
直接访问启动的端口地址:
HTML处理
Flask 主要有两个部份组成:
- Werkzeug: 处理路由映射
- Jinja2: 渲染HTML
引入Falsk包的时候会自动包含这两个包
'''
1. 引入from flask import render_template
2. HTML需要放在templates 下面固定写法
3. return render_template('index.html')
'''
from flask import Flask,render_template
app = Flask(__name__)
# 返回html
@app.route('/')
def welcome3():
data = datetime.date.today() # 普通变量
name = ['小明', '旺财', '李四'] # 传递列表
task = {"任务": "打扫卫生", "时间": "3天"} # 传递字典
return render_template('index.html', var = data, list = name, task = task)
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
今天是{{data}},欢迎光临。
今天值班的有:
{% for name in list %} <!-- 遍历列表 -->
<li>{{name}}</li>
{% endfor %}
任务:<br/>
<table>
{% for key, value in task.items() %} <!-- 遍历字典 -->
<tr>
<td>{{key}}</td>
<td>{{value}}</td>
</tr>
{% endfor%}
</table>
</body>
</html>
效果:
表单提交
#表单提交
# flask_test_demo.py
from flask import Flask,render_template
import datetime
app = Flask(__name__)
# 请求表单页
@app.route('/test/register')
def regisger():
return render_template('test/register.html')
# 处理提交结果
@app.route('/result', methods=['POST', 'GET'])
def result():
''' 请求参数封装在 flask.request 对象中,需要导包'''
from flask import request
if request.method == 'POST':
req_parmars = request.form
print(req_parmars)
return render_template('test/result.html', req_parmars = req_parmars)
if __name__ == '__main__':
app.run(debug=True)
register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action = "/result", method="post">
<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>
{% for key, value in req_parmars.items() %} <!-- 遍历字典 -->
<tr>
<th>{{key}}</th>
<td>{{value}}</td>
</tr>
{% endfor%}
</table>
</body>
</html>
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15885033.html