HTML表格,列表,表单(笔记10)

网络安全自学笔记10

继续学习HTML,学习资料解压到了E盘根目录

浏览器打开E:/html教学资料/html教学版/index.htm,可以全部展开学习

HTML在线手册

表格是用<table>标签定义的。表格被划分为行(使用<tr>标签),每行又被划分为数据单元格(使用<td>标签)。td表示“表格数据”(Table Data),即数据单元格的内容。数据单元格可以包含文本,图像,列表,段落,表单,水平线,表格等等

1、如何在HTML页面中创建表格

表格

2、想要显示一个有边框的表格,需要使用border属性

表格边框

3、如果不指定border属性,表格将不显示边框

没有边框的表格

4、表格头使用<th>标签指定

表格头

5、表格中的空单元格(在多数浏览器中,没有内容的单元格显示得不太好)

空单元格

6、可以在空单元格里加入不可分空格来占位,这样边框能正常显示

不可分空格

7、如何创建一个有标题的表格

有标题的表格

8、如何定义跨行或者跨列的单元格

单元格跨行(列)的表格

9、如何在元素中显示其他元素

10、如何使用cellpadding属性在表格内容和边框之间留出更多空白

cellpadding属性

11、如何使用cellspacing属性来增加单元格间距

cellspacing

12、给表格增加背景色或者背景图像

表格增加背景

单元格增加背景

13、如何使用“align”属性来设置单元格的对齐方式,让表格好看一些

给单元格内容设置对齐方式

14、如何使用“frame”属性来控制表格周围的边框

HTML支持有序、无序和自定义列表

1、无序列表是一个项目的序列。各项目前加有标记(通常是黑色的实心小圆圈),以<ul>标签开始,每个列表项目以<li>开始

无序列表

无序列表的不同类型

2、有序列表也是一个项目的序列。各项目前加有数字作标记,以<ol>标签开始,每个列表项目以<li>开始

有序列表

有序列表的不同类型

3、自定义列表不是一个项目的序列,它是一系列条目和它们的解释,以<dl>标签开始,自定义列表条目以<dt>开始,自定义列表的定义以<dd>开始

自定义列表

4、怎样嵌套列表

表单是一个能够包含表单元素的区域。表单元素是能够让用户在表单中输入信息的元素(比如文本框,密码框,下拉菜单,单选框,复选框等等),表单是用<form>元素定义的

1、如何创建文本框

文本框

2、如何创建密码框

密码框

3、如何创建单选按钮

单选按钮

4、创建复选框

复选框

5、表单的action属性和提交按钮。当用户点击提交按钮的时候,表单的内容会被提交到其他文件。表单的action属性定义了所要提交到的目的文件,该目的文件收到信息后通常进行相关的处理

含有文本框和提交按钮的表单

6、如何从一个表单发送电子邮件

从表单发送电子邮件

总结:

1、继续了解HTML语言

2、学习HTML表格,列表,表单

Python 30 天回顾与总结

在过去的 29 天里,我们系统地学习了 Python 编程的多个方面知识,并通过实际项目进行了应用和巩固。今天,我们将对所学内容进行全面回顾与总结,梳理重点知识、常用技巧,整理遇到的问题及解决方法,同时对之前编写的代码项目开展代码审查,进一步优化代码质量。

  • 数据类型:掌握了如整数、浮点数、字符串、列表、元组、字典、集合等基本数据类型的定义、特性及操作方法。例如,列表的切片、字典的键值对操作等,它们是构建程序逻辑的基础元素。
  • 控制结构:学会了使用 if-elif-else 条件判断语句来根据不同条件执行相应代码块,以及 for 循环和 while 循环实现重复执行特定代码的功能,合理运用这些结构能够实现复杂的业务逻辑。
  • 函数:了解了函数的定义、参数传递(包括位置参数、关键字参数等)以及返回值的使用,函数的封装使得代码的复用性大大提高,方便对功能模块进行组织和管理。
  • 类与对象:明白了如何定义类,通过类创建对象,以及对象的属性和方法的概念与使用方式。例如在游戏角色类设计项目中,创建 Character 父类及 Warrior、Mage 等子类,体现了类的继承、多态等特性,使代码结构更加清晰,符合现实世界的对象关系模型。
  • 特殊方法:像 __init__ 初始化方法用于对象初始化,__str__ 方法自定义对象的字符串表示形式等特殊方法,能让类在不同场景下表现出更符合预期的行为。
  • NumPy:作为 Python 科学计算的基础库,学会了创建不同维度的数组(使用 np.array()、np.zeros()、np.ones() 等函数),掌握了数组的基本操作(索引、切片、形状修改、元素级运算等)以及高级操作(广播机制、聚合函数如 sum、mean、max、min 的运用),为高效处理数值数据提供了有力支持。
  • Pandas:重点学习了创建 Series 和 DataFrame 这两种核心数据结构(从列表、字典等数据源进行创建),并且熟练掌握了 DataFrame 的各类基本操作,包括数据的选取(按列、按行、按条件)、清洗(删除缺失值、重复值)以及合并与连接(merge、concat 方法),在数据分析项目中能够灵活地对数据进行整理和分析。
  • Matplotlib:借助这个强大的数据可视化库,能够绘制多种常见图表(折线图、柱状图、散点图等),通过 plt.plot()、plt.bar()、plt.scatter() 等函数实现,同时掌握了子图绘制(使用 plt.subplot() 函数),将数据以直观的可视化形式展现出来,便于发现数据规律和趋势。
  • Flask 框架:从入门到深入,先是创建简单的 Flask 应用,定义路由(如根路由及不同路径的路由)来处理不同 URL 的请求,返回相应的 HTML 页面;之后深入学习了路由参数传递、请求对象的使用(获取请求方法、请求头信息、请求体数据等),使得能构建交互性更强的 Web 应用。并且结合 Flask-WTF 扩展处理 HTML 表单提交的数据,进行数据验证(如用户注册、登录表单验证),增强了应用的安全性和实用性。
  • 数据库连接(SQLAlchemy):学会了安装 SQLAlchemy 库,配置数据库连接字符串(针对 SQLite、MySQL 等不同数据库)并创建数据库引擎,利用其 ORM 功能在 Flask 应用中创建数据库表、进行数据的插入(如将用户数据保存到数据库)和查询操作,实现了 Web 应用的数据持久化存储和读取。
  • 测试框架(unittest 和 pytest):了解了自动化测试的概念与重要性后,学习使用 unittest(Python 内置标准框架,基于面向对象,测试类继承自 TestCase,测试方法名以 test 开头)和 pytest(更加简洁灵活,测试函数名以 test_ 开头即可)编写测试用例,对代码进行单元测试和功能测试。
  • 断言与测试结果分析:掌握了不同框架下断言的使用方法(unittest 中的多种断言方法如 self.assertEqual 等,pytest 直接用 assert 语句),以及如何查看和分析测试结果,通过自动化测试保障代码质量。

通过函数封装、类的继承与多态以及模块的导入使用等方式,将重复的代码逻辑提取出来,在不同的地方进行复用,减少代码冗余,提高开发效率。例如在数据分析项目中,将数据清洗的相关代码封装成函数,在不同数据集处理时可以直接调用。

使用列表推导式可以简洁地创建列表,如 [i**2 for i in range(10)] 能快速生成 0 到 9 的平方数组成的列表;字典推导式同理,方便地构建字典数据结构,提高代码的简洁性和可读性。

在处理文件操作、数据库连接等需要资源管理的场景时,使用 with 语句(上下文管理器),它能自动处理资源的获取和释放,避免忘记关闭资源导致的潜在问题,例如 with open(\’file.txt\’, \’r\’) as f: 用于读取文件内容。

在开发不同项目时,使用虚拟环境(如 venv 或者 conda 创建的虚拟环境)可以隔离不同项目的依赖包,避免包版本冲突,方便项目的部署和迁移。

  • 问题:使用 pip 安装库时,可能会遇到网络连接失败、版本冲突或者权限不足等问题,导致库无法正常安装。
  • 解决方法:对于网络问题,可以更换网络环境或者使用国内的镜像源(如清华大学镜像源),通过配置 pip 的镜像源地址来加快下载速度并解决部分网络连接故障;对于版本冲突,仔细查看报错信息,明确冲突的依赖包,尝试指定要安装的库版本或者更新相关依赖包的版本;若权限不足,则在命令行中使用管理员权限(如 sudo pip install <库名> 在 Linux 或 macOS 系统下)进行安装。
  • 问题:在进行数据操作时,可能会出现数据类型不匹配的情况,例如在对字符串和数字进行不恰当的运算,或者列表和字典在使用方法上混淆等。
  • 解决方法:仔细检查变量的数据类型,通过 type() 函数可以查看具体类型,然后根据数据类型的特性进行相应的操作调整,如将字符串转换为数字类型(使用 int()、float() 等函数)再进行数值运算;明确不同数据结构的操作方法,避免错误使用。
  • 问题:在将 Flask 应用部署到服务器上时,可能遇到服务器软件配置错误、端口未开放、域名解析失败或者应用依赖环境缺失等诸多问题,导致网站无法正常访问。
  • 解决方法:查看服务器相关日志(如 Gunicorn、uWSGI 以及 Flask 应用本身的日志文件),从中查找错误提示信息,确定是哪方面的配置出现问题;检查服务器的网络安全设置,确保应用使用的端口在防火墙或安全组规则中是开放允许访问的;对于域名解析问题,使用在线的 DNS 查询工具验证域名是否正确指向服务器 IP 地址,同时检查域名注册和备案(国内服务器需要备案)相关情况;另外,要保证服务器上安装了完整的应用依赖环境,可以通过查看项目的 requirements.txt 文件(记录了项目依赖包及其版本)来核对并安装缺失的依赖包。
  • 代码结构优化:查看各个函数之间的调用关系,是否存在功能过于复杂、耦合度过高的函数,可以将其拆分成更小的、职责单一的函数,提高代码的可维护性。例如在数据清洗和统计分析的函数中,若有过多不同逻辑的操作混合在一起,可按不同的清洗步骤和分析维度进行拆分。
  • 变量命名规范:检查变量名是否表意清晰,遵循有意义、易读的命名原则,避免使用单个字母或者含义模糊的变量名,方便后续自己和其他开发者理解代码意图。比如将表示销售额的变量命名为 sales_amount 而不是简单的 s。
  • 注释添加:对于一些复杂的逻辑、算法或者数据处理步骤,添加必要的注释进行说明,解释代码的功能和目的,便于在后续回顾或者他人阅读代码时快速理解代码思路,尤其在进行数据分析流程中一些自定义的数据转换、统计方法等地方添加注释更有帮助。
  • 路由设计合理性:检查路由是否过多、过杂,是否可以进行合理的分组或者整合,使整个应用的 URL 结构更加清晰明了。例如,对于用户相关的路由(注册、登录、个人信息修改等)可以统一放在 /user 前缀的路径下进行管理。
  • HTML 模板代码优化:查看模板文件中是否存在大量重复的 HTML 结构或者样式代码,可以考虑通过模板继承、包含等方式进行复用,减少代码冗余。同时,检查模板中变量的传递和使用是否合理,避免出现未定义变量或者变量使用混乱的情况。
  • 数据库操作优化:在进行数据库查询时,避免不必要的全表查询,尽量通过添加合适的筛选条件(如 filter_by、where 等语句)来精准获取所需数据,提高数据库操作效率;对于频繁的数据库连接和断开操作,可以考虑使用数据库连接池技术来优化性能,减少资源消耗。

通过今天全面的回顾与总结以及对代码项目的审查优化,我们对 Python 编程有了更系统、深入的认识,不仅巩固了所学知识和技巧,还进一步提升了代码的质量,为今后编写更复杂、高效的 Python 项目奠定了坚实的基础。

#Python 学习总结# #知识回顾# #代码审查优化# #编程经验分享# #Python 项目提升#

前端入门——html 表单

前面已经学习相关html大部分知识,基本上可以制作出简单的页面,但是这些页面都是静态的,一个网站如果要实现用户的互动交流,这时表单就起到关键的作用,表单的用途很多,它主要用来收集用户的相关信息,是网页具有交互的功能。例如,用户注册登录,留言等。

下面会详细介绍表单的使用方法,有以下内容:

  • 表单标签form的使用
  • 表单控件使用

使用<form></form>标签来创建一个表单,在其之间就是各种表单控件,如,输入框,文本框,单选按钮,多选按钮,提交按钮等。

语法代码如下:

1、action —— 处理程序

这里的 action 属性值表单提交的地址,就是表单收集好数据后要传递给远程服务的地址,其地址可以是绝对路径也可以是相对路径,或者其它形式,如发送电子邮件。

使用表单发送电子邮件:

提交到后台程序地址:

2、name —— 表单名称

表单名称,这一属性不是必需的,但是为了防止表单信息提交到后台处理程序时发生混乱,一般要设置一个名称,且在同一页面中最好是唯一的,不要和其它表单重复命名。

3、method —— 传送数据方法

method 属性用来定义处理程序使用那种方法来获取数据信息,常用的有 get 和 post (http 协议定义的方法)。

何时使用 GET?

GET 最适合少量数据或不是很重要数据的提交,浏览器会设定容量限制,默认如何没有设置method 属性,表单则会使用get 方法。

当您使用 GET 时,表单数据在页面地址栏中是可见的,会在表单提交的地址后面跟一个问号“?” ,问号后面是数据,以 名称1=值1&名称2=值2 形式发送到后台程序。

地址栏会看到如下:

关于 GET 的注意事项:

以名称/值对的形式将表单数据追加到 URL

永远不要使用 GET 发送敏感数据!(提交的表单数据在 URL 中可见!)

URL 的长度受到限制(2048 个字符)

对于用户希望将结果添加为书签的表单提交很有用

GET 适用于非安全数据,例如 Google 中的查询字符串

何时使用 POST?

使用post 表单数据和url(表单提交地址)是分开发送的,在页面地址栏中被提交的数据是不可见的,这样安全性更好,用户端会通知服务端获取数据,所以这种情况没有数据长度的限制,缺点是速度会慢些。

关于 POST 的注意事项:

将表单数据附加在 HTTP 请求的正文中(不在 URL 中显示提交的表单数据)

POST 没有大小限制,可用于发送大量数据。

带有 POST 的表单提交后无法添加书签

4、enctype —— 编码方式

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。

有以下几种值:

5、target —— 目标显示方式

target 属性规定在何处打开 action URL。表单的目标窗口通常用来显示表单返回的信息,例如是否成功提交了表单,是否出错等。

属性值有以下:

看到这里是不是想的了之前学习超链接时候,a标签也有同样的属性,这里差不多一个意思,只是用途不一样。

这里的窗口有可能是框架 frame 或 浮动窗口 iframe ,后面会讲到框架和浮动窗口,就是在一个页面中可以嵌套一个子窗口。

什么是表单控件,就是收集数据的各种形式控件,比如输入框,密码框,单选、多选按钮,下拉菜单,文本域,文件域,提交按钮等等。

如下代码:

效果如下:

这里显示了一个基本表单,包含了输入框,密码框,单选,下拉菜单,文本域等组件,下面会按其使用类型介绍表单控件。

所有表单控件都一个name属性和vaule属性,用于和其它控件区别,后台程序将会以此名称获取其表单控件对应的vaule值。

下篇会介绍各种表单控件的使用,感谢关注。

上篇:

下篇:

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。