基于Flask框架搭建视频网站的学习日志(三)1.原始Web 表单

本节主要用于体验一下前端后端直接数据的交互,样例不是太完善,下一节会加入Flash处理,稍微完善一下页面

(备注:建议先阅读廖雪峰老师的博客,MVC:Model-View-Controller,中文名“模型-视图-控制器”)

负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。(Flask-WTF扩展封装了WTForms,并且有验证表单数据的功能,这样就可以少写很多验证输入数据的代码,比如判断两次输入的密码是否相同等等)

本节先探究最原始的web表单如何实现,下节在使用WTF

一、首先,在HTML页面中直接写form表单:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post">
<label>Username:</label> <input type = "text" name="username"> <br>
<label>Password:</label> <input type = "password" name="password"> <br>
<label>Make_sure:</label> <input type = "password" name="password2"> <br>
<input type="submit" value="submit"> <br>
</form> </body>
</html>

补充一些html知识:<br>表示换行;<hr>表示加一条分割线;由于name定义的是文本的名字,所以password和password2要区分开来,这在视图函数中的request.form.get(‘name’)里面的name要用到,这也就是MVC中的Model

二、视图函数中获取表单数据

明确目的:实现一个简单的登录的逻辑处理

1、由于路由需要有get和post两种请求方式,所以我们应该在代码中判断请求方式(from flask import request)

2、获取请求的参数,从表单中拿到数据

3、判断参数是否填写,密码是否输入

4、如果判断都ok,就返回success

from flask import Flask, render_template, request
app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) #由于路由需要有get和post两种请求方式
def _hello():
#1.判断请求方式,用request.method
if request.method == 'POST':
#2.获取请求的参数,用request.form.get()
username = request.form.get('username')
password = request.form.get('password')
password2 = request.form.get('password2')
print ('success')
#3.判断参数是否填写,密码是否输入
if not all([username, password, password2]):
print("参数不完整")
elif password != password2:
print("密码不一致")
#4.如果判断都ok,就返回success
else :
return 'success'
return render_template('hello.html') if __name__ == '__main__':
app.run(debug=True)

HTML补充知识:

HTML 表单

表单是一个包含表单元素的区域。

表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。

表单使用表单标签 来设置:

<form>
.
*input 元素*
.
</form>

<form>里面的就是整个表单 ,<input>是输入标签,type定义输入文本类型,name定义输入文本的名字;

> > 文本域(Text Fields)

文本域通过<input type="text"> 标签来设定,当用户要在表单中键入字母、数字等内容时,就会用到文本域。

<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
</form>

浏览器显示如下:

First name:

Last name:

注意:表单本身并不可见。同时,在大多数浏览器中,文本域的默认宽度是 20 个字符。


>>密码字段

密码字段通过标签<input type="password"> 来定义:

<form>
Password: <input type="password" name="pwd">
</form>

浏览器显示效果如下:

Password:

注意:密码字段字符不会明文显示,而是以星号或圆点替代。

基于Flask框架搭建视频网站的学习日志(三)之原始web表单的更多相关文章

  1. 基于Flask框架搭建视频网站的学习日志(一)

    ------------恢复内容开始------------ 基于Flask框架搭建视频网站的学习日志(一)2020/02/01 一.Flask环境搭建 创建虚拟环境 初次搭建虚拟环境 搭建完虚拟环境 ...

  2. 基于Flask框架搭建视频网站的学习日志(二)

    基于Flask框架搭建视频网站的学习日志(二)2020/02/02 一.初始化 所有的Flask程序都必须创建一个程序实例,程序实例是Flask类的对象 from flask import Flask ...

  3. 基于Flask框架搭建视频网站的学习日志(六)之数据库

    使用Flask-SQLSlchemy管理数据库(1)--初步安装调试 一.介绍: Flask-SQLSlchemy是一个Flask扩展,简化了Flask中对sql的操作,是一个高层的框架,可以避免直接 ...

  4. Flask 教程 第三章:Web表单

    本文翻译自 The Flask Mega-Tutorial Part III: Web Forms 这是Flask Mega-Tutorial系列的第三部分,我将告诉你如何使用Web表单. 在第二章中 ...

  5. vue学习笔记三:常见的表单绑定

    <template> <div id="app"> <input type="checkbox" id="checked ...

  6. SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器

    SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器 天幕如遮,唯我一刀可碎千里华盖,纵横四海而无阻,是谓碎遮 --取自<有匪> 写在前面 这段时间很多时间都在忙着编写该项目 ...

  7. Python基于Flask框架配置依赖包信息的项目迁移部署小技巧

    一般在本机上完成基于Flask框架的代码编写后,如果有接口或者数据操作方面需求需要把代码部署到指定服务器上. 一般情况下,使用Flask框架开发者大多数都是选择Python虚拟环境来运行项目,不同的虚 ...

  8. Python flask 构建微电影视频网站✍✍✍

    Python flask 构建微电影视频网站  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...

  9. 【PHP】基于ThinkPHP框架搭建OAuth2.0服务

    [PHP]基于ThinkPHP框架搭建OAuth2.0服务 http://leyteris.iteye.com/blog/1483403

随机推荐

  1. HTTP中GET与POST的区别 99%的错误认识

    @[TOC本篇文章分两部分,第一部分可以列为初为新人的装逼失败模式,第二部分列为修炼低调模式. 装逼失败模式:99%的人对GET和POST的认识 修炼低调模式:1%不知道的进阶认识 GET和POST, ...

  2. 在win64上使用bypy进行百度网盘文件上传

    阿里云服务器的带宽为2M,网站每日的备份包都3G多了,离线下载太费时间了,打算每日将备份包自动上传到自己的百度云盘里.1.先安装Python 执行python -V ,发现没安装python2.去py ...

  3. 百度DMA+小度App的蓝牙语音解决方案展示

    前记   跟着百度也有一段时间了,经过一年多的努力,我们也做出了一些基于百度的语音助手的产品方案.下面就给大家秀一下我们做的产品.有类似需求的朋友可以多多交流.我们的合作方式十分灵活,可以卖芯片你自己 ...

  4. CSS3(4)---动画(animation)

    CSS3(4)---动画(animation) 之前有写过过渡:CSS3(2)--- 过渡(transition) 个人理解两者不同点在于 过渡 只能指定属性的 开始值 与 结束值,然后在这两个属性值 ...

  5. Java:Excel文件上传至后台

    之前的项目中有遇到上传Excel文件的需求,简单说就是解析一个固定格式的Excel表格,然后存到数据库对应的表中,表格如下: 项目采用SSM架构,mvc模式,显而易见,这个Excel表需要拆成两个表, ...

  6. 公子奇带你进入Java8流的世界(一)

    在说流之前,我们先来看看集合,为什么呢?作为Java8中的新成员,它和集合有很多相似之处,同时它们也是可以互相转化的.集合不仅仅是Java语言,任何一门高级开发语言都有集合的概念,集合顾名思义,就是很 ...

  7. 1082 射击比赛 (20 分)C语言

    本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟.我们假设靶心在原点(0,0). 输入 ...

  8. 1033 旧键盘打字 (20 分)C语言

    题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入描述: 输入在2行中分别给出坏掉的那些键.以及应 ...

  9. gulp的简介以及使用方法

    环境介绍: pro环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境. pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样. test环境:测试环境,外部用户 ...

  10. 【THE LAST TIME】深入浅出 JavaScript 模块化

    前言 The last time, I have learned [THE LAST TIME]一直是我想写的一个系列,旨在厚积薄发,重温前端. 也是对自己的查缺补漏和技术分享. 欢迎大家多多评论指点 ...