通过flask搭建,简单的网站,实现注册登录效果,初步了解搭建网页的基本架构。

网站架构了解

通过flask搭建,简单的网站,实现注册登录效果,初步了解搭建网页的基本架构。

前提准备

  • html在开发中最主要的一些标签知识
  • flask中自带的接收信息给后台的语法

1)html基础标签的使用

<h1>用于强调文本内容,放大字体</h1>/* 行内标签&&块状标签 */
1. 行内标签:字符多长就占多长的空间,内容会不断的添加在行后
<span>行内标签</span>2. 块状标签,就独占一整行的内容空间
<div></div>  
<table></table>3. input系列标签
<input type="text" />  这是一个文本框
<input type="password" />  这是一个密码框,用于输入密码
<input type="radio" /> 这是一个单选框,用于多选一
<input type="checkbox" /> 这是一个多选框,用于多选多
<input type="file" /> 这是一个文件上传按钮,点击后自动打开文件管理系统
<input type="submit" value="提交"/> 这是一个用于提交表单的按钮,在做用户注册和用户登录时经常用到
<input type="button" value="提交"/> 这是一个普通的按钮,经常和点击发生事件结合在一起,也就是信号与槽。
<input type="reset" value="重置" /> 当你账号和密码都出现错误的时候你可以点击重置按钮,实现清密码框的内容4. 下拉框
1)单选,eg.选择一个你现在居住的城市
<select><option>北京</option><option>上海</option><option>广州</option>
</select>2)多选,eg.多选题
<select multiple><option>选择A</option><option>选择B</option><option>选择C</option><option>选择D</option>
</select>5. 多行文本输入,这个文本框的右下角可以拉伸框的大小,然后行数可以是整数也可以是小数,而且rows设定的行数并不是只能输入这么多行的内容,而是在进入也面后,输入框的高度。
<textarea rows="行数"></textarea>

2)基于前面学的flask

  • 用户发出get请求时,网页内容信息会拼接在网络路径上。
  • 用户发出post请求,网页内容不会显示在网络路径上,因此安全性相对get较高,常用于注册和登录中的请求。

下面是注册的基础html界面代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>用户注册</h1>
<form method="post" action="/post/reg">
<div>用户名:<input type="text" name="user"/>密码:<input type="password" name="pwd"/>
</div><div>性别:<input type="radio" name="gender" value="man"><input type="radio" name="gender" value="woman"></div>
<div>爱好:<input type="checkbox" name="hobby" value="10">篮球<input type="checkbox" name="hobby" value="20">足球<input type="checkbox" name="hobby" value="30">乒乓球<input type="checkbox" name="hobby" value="40">棒球
</div>
<div>城市:<select name="city"><option value="bj">北京</option><option value="sh">上海</option><option value="sz">深圳</option></select>
</div>
<div><div>擅长领域:</div><select name="skill" multiple><option value="100">打游戏</option><option value="200">睡觉</option><option value="300">吃饭</option><option value="400">刷抖音</option></select>
</div>
<div>备注:<textarea name="more"></textarea>
</div><div>    <input type="submit" value="submit按钮"></div>
</form>
</body>
</html>
  • 从以上代码可以看出,所有的内容都被标签所包裹

  • 在标签的尖括号中,method指定了用户请求类型为post,action是将动态信息传递给了后台flask框架对应的引用下:

  • 在实现性别选择的时候,会在input标签中加入name,且保证name赋值的内容相同,是为了,避免同时可选择男好女,这种逻辑错误!

  • 可观察到,每个input的标签中都会有value,是因为,在将数据返回给后天的时候,通常用字典的格式,所以要有key,才能接住对应的值!

  • 在input标签中都设置的有name是为了,在数据返回时,能找到对应想返回的内容

@app.route('/post/reg', methods=['POST'])
def post_register():# 1.接收用户通过POST形式发送过来的数据user = request.form.get('user')pwd = request.form.get('pwd')gender = request.form.get('gender')hobby = request.form.getlist('hobby')city = request.form.get('city')skill = request.form.getlist('skill')more = request.form.get('more')print(user, pwd, gender, hobby, city, skill, more)# 将用户信息写入文件中, 写如Excel或数据库中实现注册。# 2.给用户再返回结果return "注册成功"
  • 观察上段代码可以发现,在获取用户输入内容信息时,有的用……get()而有的用……getlist(),所以在接收多行信息(多选内容)时用getlist()。
  • 等后期学了Python和数据库的结合时,你就可以将用户信息存入数据库,下次登录通过输入的账号和密码与数据库的用户数据对比,若一样,则登录成功,若不一样则登录失败!
  • 在设置登录界面也是有讲究的!首先用户看到登录的界面肯定是get请求,在输入完账号密码后,发送的肯定是post请求,所以flask的逻辑代码段就可以如下怎么写:
@app.route('/login', methods=['GET','POST'])
def login_register():if request.method == 'GET':return render_template('login.html')else:user = request.form.get('username')pwd = request.form.get('password')print(user, pwd)return '登录成功'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】之【CMake】Error : The source.. does not match the soused

QT中cmak编译出现CMake Error: The source… does not match the soused 分析 前提是该项目是从另一个路径的项目复制过来的&#xff0c;编写代码时发现无论怎样修改代码&#xff0c;运行后都没有任何变化&#xff0c;以为是qtbug&#xff0c;重构重启都没用&#xff0c;最后…

websevere服务器从零搭建到上线(三)|IO多路复用小总结和服务器的基础框架

文章目录 epollselect和poll的优缺点epoll的原理以及优势epoll 好的网络服务器设计Reactor模型图解Reactor muduo库的Multiple Reactors模型 epoll select和poll的优缺点 1、单个进程能够监视的文件描述符的数量存在最大限制&#xff0c;通常是1024&#xff0c;当然可以更改数…

Spring底层入门(十一)

1、条件装配 在上一篇中&#xff0c;我们介绍了Spring&#xff0c;Spring MVC常见类的自动装配&#xff0c;在源码中可见许多以Conditional...开头的注解&#xff1a; Conditional 注解是Spring 框架提供的一种条件化装配的机制&#xff0c;它可以根据特定的条件来控制 Bean 的…

【Golang】 在 Gin 框架中添加网关中间件

在 Gin 框架中添加网关中间件是一种常见的做法&#xff0c;可以用于实现请求的预处理、身份验证、日志记录等功能。下面是一个简单的示例&#xff0c;演示如何在 Gin 框架中添加一个简单的网关中间件。 package mainimport ("fmt""net/http""time&qu…

什么是分库分表

读写分离主要应对的是数据库读并发&#xff0c;没有解决数据库存储问题。试想一下&#xff1a;如果 MySQL 一张表的数据量过大怎么办? 答案当然是分库分表 什么是分库&#xff1f; 分库 就是将数据库中的数据分散到不同的数据库上&#xff0c;可以垂直分库&#xff0c;也可…

windows通过sftp对Linux服务器进行上传下载

前言 通过简单高效的方式可以在没有远程连接软件的情况下对服务器进行上传下载。 方法 Windows下打开cmd命令行&#xff0c;输入sftp 用户名IP 上传下载命令 #上传文件&#xff0c;如果需要上传文件夹则 put -r 文件路径 上传到路径 sftp> put E:\clash-verge_1.6.2_a…

把3D模型加载到网页上需要什么技术?

要将3D模型加载到网页上并实现交互展示需求&#xff08;比如点击模型弹出一个窗口或控制模型的材质等&#xff09;&#xff0c;可以使用以下几种技术&#xff1a; 1、Three.js&#xff1a;这是一个非常流行的JavaScript库&#xff0c;用于在网页上渲染和显示3D图形。它支持多种…

基于svm的水果识别

1、程序界面介绍 该程序GUI界面包括待检测水果图片加载、检测结果输出、清空可视化框等。其中包括训练模型、加载图片、重置、识别检测按钮。 程序GUI界面 识别玉米识别西瓜 分类器识别水果基本原理&#xff1a; 由于每种水果的外形存在很大差异&#xff0c;比如西瓜与玉米&…

Hive-表设计优化

Hive-表设计优化 1.Hive查询基本原理 Hive的设计思想是通过元数据解析描述将HDFS上的文件映射成表。 基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时&#xff0c;默认将其转换为分布式计算MapReduce程序对HDFS中的数据进行读取处理的过程。 当执行…

Nsight System无法使用collect GPU metrics

Nsight System无法使用“collect GPU metrics” 这里简单记录下Nsight System安装使用中发生的权限问题&#xff0c;主要针对的是collect GPU metrics无法使用的问题 原因分析&#xff1a; 根据英伟达官方文档的解释应该是GPU的权限问题&#xff0c;官方解决问题方法在此 解…

软件设计师笔记(二)-零碎要点

本文内容来自笔者学习zst 留下的笔记&#xff0c;都是零碎的要点&#xff0c;查缺补漏&#xff0c;若有错误请大家提出&#xff0c;希望大家都能通过&#xff0c;记得加上免费的关注&#xff01;谢谢&#xff01; 文章编辑于&#xff1a;2024-5-13 13:42:56 目录 1. 算法 [广…

【什么是范数】L1、L2范数介绍

一、 什么是范数 范数&#xff08;Norm&#xff09;是数学中用于衡量向量大小(或距离)的一种概念。在几何和代数中&#xff0c;范数可以提供一个向量长度或大小的量度。更正式地说&#xff0c;范数是一个函数&#xff0c;它将向量的集合映射到非负实数&#xff0c;满足以下性质…

社交媒体数据恢复:陌陌

确保你的手机已经进行了备份。备份可以提高数据恢复的成功率。 在电脑上下载并安装数据恢复软件。在使用软件进行恢复之前&#xff0c;请确保你的安卓手机已经在开发者选项中开启了USB调试模式。 使用USB数据线将手机连接至电脑。打开数据恢复软件&#xff0c;选择“陌陌聊天…

毕业论文写作神器:使用Latex写论文 安装texlive+texstudio 并添加IEEE模板

听说Latex写论文方便&#xff0c;更改格式方便&#xff0c;而且颜值高 LexLive2024安装 清华镜像网址&#xff1a;Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 下载完双击打开texlive2024.iso,然后点击 修改路径&#xf…

稻盛和夫《活法》读后感

最近几天又重读了一边稻盛和夫的《活法》&#xff0c;里面的观点让我感触颇多&#xff0c;现分享给诸君。 稻盛和夫毕业后&#xff0c;适逢经济萧条&#xff0c;没有好机会进入大公司深造&#xff0c;只能在一名教授的推荐下进入了一家做陶瓷绝缘体的公司&#xff0c;虽然公司…

Arduino-ILI9341驱动实现TFT屏输出中文四

Arduino-ILI9341驱动实现TFT屏输出中文四 1.概述 ILI9341驱动在TFT屏幕上不支持直接输出汉字&#xff0c;需要借助提取字模软件将汉字转为十六进制地址&#xff0c;然后通过改地址控制每行和每列点阵的亮和灭实现显示汉字功能。 2.ILI9341显示汉字 2.1.PCtoLCD2002取模软件…

面试宝典(2)——缓存篇(Redis)

面试宝典&#xff08;2&#xff09;——缓存篇&#xff08;Redis&#xff09; 1.Redis的主要用途有哪些&#xff1f; 缓存分布式锁&#xff1a;setnx&#xff0c;redisson消息队列&#xff0c;延迟队列 2.什么是缓存穿透&#xff1f; 查询一个不存在的数据&#xff0c;数据…

C++入门指南(中)

目录 ​编辑 一、C关键字(C98) 二、命名空间 2.1 域 2.2 命名空间域 2.1 命名空间定义 2.2 命名空间使用 三、C输入&输出 四、缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 五、函数重载 5.1 函数重载概念 5.2 C支持函数重载的原理--名字修饰(name Mangling)…

告别黑板粉笔 高新技术进课堂 未来教室会成什么

现在&#xff0c;全国许多院校都经过引进信息化技能&#xff0c;完成智慧校园建造&#xff0c;推进教育均衡展开。一些校园的小学教室的信息化配备投入经费已达50万元/每间&#xff0c;初中是70万元&#xff0c;高中是90万元。这些新技能的投入运用有用的共享教育内容、精准地分…

基于select for update 实现数据库分布式锁

1、select for update 的基本语法 SELECT * FROM table_name WHERE condition FOR UPDATE;2、select for update 的定义及作用 2.1 、select for update的含义是在查询数据的同时对所选的数据行进行锁定&#xff0c;以保证数据的一致性和并发控制。在并发环境下&#xff0c;多…