flask知识点

  1. 1.后端渲染html到前端
  2. render_template
  3. 2.后端获取前端数据
  4. request.args.get
  5. 3.前端获取后端数据
  6. 模板
  7. 4.警示消息 flash
  8. {{ get_flashed_messages()[0] }}

第一个 hello maotai

  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route('/')
  4. def hello_world():
  5. return 'Hello Mao Tai!'
  6. if __name__ == '__main__':
  7. app.run(debug=True)

用户登录: 没时间了,上车

分析需求

  1. 访问/login, 提示登录页(输入用户名密码)
  2. 如果没输入用户名 或密码 分别警示,让重新输入
  3. 如果输入错误,则提示用户名密码错误
  4. 点击登陆 /loginaction,转到用户详情页user.html

app.py

  1. from flask import Flask, render_template, request, flash
  2. from models import User
  3. app = Flask(__name__)
  4. app.secret_key = "123"
  5. # 3.登录, 登录后展示欢迎页
  6. @app.route("/login")
  7. def login():
  8. return render_template("login.html")
  9. @app.route("/loginaction")
  10. def loginaction():
  11. user = request.args.get("user")
  12. pwd = request.args.get("pwd")
  13. if not user:
  14. flash("pls input user")
  15. return render_template("login.html")
  16. if not pwd:
  17. flash("pls input pwd")
  18. return render_template("login.html")
  19. if user == "admin" and pwd == "123456":
  20. flash("welcome")
  21. #传回字典
  22. return render_template("user.html", user={'user': user, 'pwd': pwd})
  23. return render_template("login.html")
  24. # 1 返回html html放在templates下面即可
  25. @app.route("/")
  26. def index():
  27. return render_template("index.html")
  28. # 2 渲染模板
  29. @app.route("/user")
  30. def user_index():
  31. user = User("cristin", "123345")
  32. return render_template("user.html", user=user)
  33. app.run(debug=True)

templates/login.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>login</title>
  6. </head>
  7. <body>
  8. <form action="/loginaction">
  9. {{ get_flashed_messages()[0] }}<br>
  10. user: <input type="text" name="user"><br>
  11. pwd: <input type="text" name="pwd"><br>
  12. <input type="submit">
  13. </form>
  14. </body>
  15. </html>

user.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>user</title>
  6. </head>
  7. <body>
  8. {{ user.user }}
  9. {{ user.pwd }}
  10. </body>
  11. </html>

需要补充下对db的增删改查

[py]flask从0到1-模板/增删改查的更多相关文章

  1. 通过flask实现web页面简单的增删改查bootstrap美化版

    通过flask实现web页面简单的增删改查bootstrap美化版 项目目录结构 [root@node1 python]# tree -L 2 . ├── animate.css ├── fileut ...

  2. 通过flask实现web页面简单的增删改查

    通过flask实现web页面简单的增删改查 # 1.后台程序falsk_web01.py #coding:utf-8 from flask import Flask,render_template,r ...

  3. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  4. Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  5. Flask一种通用视图,增删改查RESTful API的设计

    模型设计是后端开发的第一步.数据模型反映了各种对象之间的相互关系. from app import db class Role(db.Model): """角色" ...

  6. primefaces4.0基本教程以及增删改查

    最近试着用了用primefaces4.0,准备写一个基本的增删改查以及分页程序,但在写的过程中发现了很多问题,本想通过百度.谷歌解决,但无奈中文资料非常少,笔者在坑中不停的打滚,终于完成了一个有着基本 ...

  7. [py]django强悍的数据库接口(QuerySet API)-增删改查

    django强悍的数据库接口(QuerySet API) 4种方法插入数据 获取某个对象 filter过滤符合条件的对象 filter过滤排除某条件的对象- 支持链式多重查询 没找到排序的 - 4种方 ...

  8. NetCore2.0 RozarPage自动生成增删改查

    原文链接:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger 上面的只是原文 ...

  9. day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查

    目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...

随机推荐

  1. 四、K3 WISE 开发插件《工业单据老单插件开发新手指导》

    开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 =============================================== 目录 一 ...

  2. intellij2016.03激活

    激活的时候采用server的方式 :http://jetbrains.tech

  3. jQuery队列(一)

    jQuery的队列依赖缓存机制事件,它同时是animate的基础. 它不像事件机制.缓存机制.回调机制一样有自己的命名空间,由于比较简单,所以直接挂在到$和jQuery对象上. 它提供的基础方法有: ...

  4. Sublime PlantUML环境配置

    参考[http://www.jianshu.com/p/e92a52770832]在安装中遇到不少问题,总结一次成功的步骤如下 一.安装步骤: 1)准备java  环境 jdk1.7 2)安装Subl ...

  5. Notepad++如何关闭最近打开的文件的历史记录功能

    Notepad++是Windows 操作系统下的一套非常有特色的自由软件的纯文字编辑器(许可证:GPL),有完整的中文化接口及支持多国语言编写的 功能(UTF8 技术).它的功能比Windows中的N ...

  6. -bash: locate: command not found

    部分版本的linux系统使用locate快速查找某文件路径会报以下错误: -bash: locate: command not found 其原因是没有安装mlocate这个包 安装:yum  -y ...

  7. iOS - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)

    // // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...

  8. 集成maven和Spring boot的profile 专题

    maven中配置profile节点: <project> .... <profiles> <profile> <!-- 生产环境 --> <id& ...

  9. nginx socket转发设置

    1.添加依赖模块,如下 --with-stream --with-stream_ssl_module 2.nginx.conf 配置,参考说明:ngx_stream_core_module user ...

  10. 上拉刷新和下拉刷新的两种方法(包括使用第三方库MJRefresh)

    一.使用苹果原生的方法 1.下拉刷新 2.上拉刷新 (1 首先要新建一个footer得XIB文件,当然同时包括对应的控制器文件,例如在XIB文件中可以如下拖拉对应的控件 (2 然后在代码文件中写一个实 ...