模型部署flask学习篇(二)---- flask用户登录&用户管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在学习机器学习或者深度学习后,我们常常会将自己训练好的模型来进行部署或者可视化出来,供自己或者别人来使用,那么python的flask框架就可以作为选择之一。


一、用户登录&用户管理

1、 flask路由:可以接收get请求和post请求

@app.route('/index',methods= ['GET','POST'])
def index():
    pass

2、动态路由

@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、获取提交的参数

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、返回数据(四种形式)

@app.route('/index',methods= ['GET','POST'])
def index():
    return render_template('index.html')
	return jsonify()
	return redirect('/index')
	return '字符串'

5、模板处理(也就是在html中)

{
   {
    x }} #插值语法
# 在html中写for循环
{
   % for item in list %}
	{
   {
   item}}
{
   % endfor %}

二、完整代码

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

<!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

<!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

<!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>

相关推荐

  1. flask web 学习用户认证与会话管理

    2024-01-25 07:58:04       56 阅读
  2. Flask学习):flask模板渲染

    2024-01-25 07:58:04       43 阅读
  3. Flask-Login 实现用户认证

    2024-01-25 07:58:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 07:58:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 07:58:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 07:58:04       82 阅读
  4. Python语言-面向对象

    2024-01-25 07:58:04       91 阅读

热门阅读

  1. pdf 转html 在线预览和查询

    2024-01-25 07:58:04       51 阅读
  2. MySQL 事务

    2024-01-25 07:58:04       56 阅读
  3. MySQL中的ON DUPLICATE KEY UPDATE语句详解

    2024-01-25 07:58:04       55 阅读
  4. Mybtisplus对时间字段进行自动填充

    2024-01-25 07:58:04       63 阅读
  5. 基于物联网的智能植物养护系统的设计与实现

    2024-01-25 07:58:04       56 阅读
  6. springboot的服务定位模式

    2024-01-25 07:58:04       56 阅读
  7. 前端页面直接导出Excel方案

    2024-01-25 07:58:04       57 阅读
  8. arm 汇编调用C

    2024-01-25 07:58:04       52 阅读
  9. ssh: connect to host github.com port 22: Connection timed out

    2024-01-25 07:58:04       48 阅读
  10. hadoop 三种运行方式

    2024-01-25 07:58:04       54 阅读