提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
-
- 一、用户登录&用户管理
-
- [1、 flask路由:可以接收get请求和post请求](#1、 flask路由:可以接收get请求和post请求)
- 2、动态路由
- 3、获取提交的参数
- 4、返回数据(四种形式)
- 5、模板处理(也就是在html中)
- 二、完整代码
- 三、完整html代码
前言
在学习机器学习或者深度学习后,我们常常会将自己训练好的模型来进行部署或者可视化出来,供自己或者别人来使用,那么python的flask框架就可以作为选择之一。
一、用户登录&用户管理
1、 flask路由:可以接收get请求和post请求
python
@app.route('/index',methods= ['GET','POST'])
def index():
pass
2、动态路由
python
@app.route('/index',methods= ['GET','POST'])
def index():
pass
#可以在index后面传参数默认是str
@app.route('/index/<nid>',methods= ['GET','POST'])
def index():
pass
# 转成int类型
@app.route('/index/<int:nid>',methods= ['GET','POST'])
def index():
pass
3、获取提交的参数
python
from flask import Flask,render_template,jsonify,request,redirect
@app.route('/index',methods= ['GET','POST'])
def index():
request.args.get() # GET形式传递的参数
request.form.get() # POST形式传递的参数
4、返回数据(四种形式)
python
@app.route('/index',methods= ['GET','POST'])
def index():
return render_template('index.html')
return jsonify()
return redirect('/index')
return '字符串'
5、模板处理(也就是在html中)
python
{{ x }} #插值语法
# 在html中写for循环
{% for item in list %}
{{item}}
{% endfor %}
二、完整代码
python
from flask import Flask,render_template,jsonify,request,redirect
app = Flask(__name__)
DATA_DICT = {
'1':{'name':'张三','age':12},
'2':{'name':'李四','age':13},
}
# 登陆页面
@app.route('/login',methods= ['GET','POST'])
def login():
if request.method == 'GET':
return render_template('login.html') #render
user = request.form.get('user')
pwd = request.form.get('pwd')
# 密码正确则进入index网页
if user == 'zhaowentao' and pwd =='zwt':
return redirect('/index')
error = '用户名或密码错误'
return render_template('login.html',error=error)
# 主页面
@app.route('/index')
def index():
data_dict = DATA_DICT
return render_template('index.html',data_dict=data_dict)
# 用户编辑页面
@app.route('/edit',methods=['GET','POST'])
def edit():
# 获取nid
nid = request.args.get('nid')
info = DATA_DICT[nid]
# 打开edit网页
if request.method == 'GET':
return render_template('edit.html',info=info)
# 接收表单输入的数据
user = request.form.get('user')
age = request.form.get('age')
# 修改数据
DATA_DICT[nid]['name'] = user
DATA_DICT[nid]['age'] = age
# 跳转index网页
return redirect('/index')
# 用户删除
@app.route('/del/<nid>')
def delete(nid):
# 删除要删除的信息
del DATA_DICT[nid]
return redirect('/index')
# 运行
if __name__ == '__main__':
app.run()
三、完整html代码
1、login.html
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户登录</h1>
<form method="post">
<input type="text" name="user">
<input type="text" name="pwd">
<input type="submit" name="提交"><span style="color:red;">{{error}}</span>
</form>
</body>
</html>
2、index.html
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>年龄</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for key,value in data_dict.items() %}
<tr>
<td>{{key}}</td>
<td>{{value.name}}</td>
<td>{{value.age}}</td>
<td>
<a href="/edit?nid={{key}}">编辑</a>
<a href="/del/{{key}}">修改</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
3、edit.html
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>修改</h1>
<form method="post">
<input type="text" name="user">
<input type="text" name="age">
<input type="submit" name="提交">
</form>
</body>
</html>