前端必学基础之HTML

《HTML》

温馨提示:要利用好tab补全和Ctrl+D补全

一、概述

目的:开发一个平台(网站)
-前端开发:HTML、CSS、JavaScript
-Web框架:接收请求并处理
MySQL数据库:存储数据地方

# 举个快速开发的例子
from flask import Flask
# 实例化一个APP
app = Flask(__name__)
@app.route('/')
# 第一个界面
def index():
    return "中国移动"
    
if __name__ == '__main__':
    app.run(port=5001, debug=True)

二、浏览器能识别的标签

2.1 编码

<meta charset="UTF-8">

2.2 title

<head>
    <meta charset="UTF-8">
    <title>登录系统</title>
</head>

2.3标题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录系统</title>
</head>
<body>
	<h1>1级标题</h1>
	<h2>2级标题</h2>
	<h3>3级标题</h3>
	<h4>1级标题</h4>
</body>
</html>

这个h1等也是块级标签,一个人占一行。

2.4 div和span

<div>内容</div>
<span>asdfa</span>

div,一个人占一整行。【块级标签】

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录系统</title>
</head>
<body>
	<div>山东蓝翔</div>
	<div>挖掘机</div>
</body>
</html>

span,自己多大占多少。【自己多少占多少】
但连续两个span会空多一格。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录系统</title>
</head>
<body>
	<span>山东蓝翔</span>
	<span>挖掘机</span>
</body>
</html>

注意:这两个标签很素,我们可以加上CSS样式,让他变的非常丰富。

小案例:

# webui.py
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')

def index():
    return render_template('test.html')

if __name__ == '__main__':
    app.run(port=5000, debug=True)
# test.html(要善于使用Ctrl+D)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试系统</title>
</head>
<body>
    <h1>中国移动</h1>
    <div>
        <span style="color: red">时间</span>
        <span>2024/5/21</span>
    </div>
    <div>中国移动是一个很厉害的公司</div>
</body>
</html>

效果如下:
在这里插入图片描述

2.4.5 超链接

# 跳转到其他网站
<a href="https://www.10086.cn/index/gd/index_200_200.html">点击跳转</a>
# 跳转到自己网站的其他网址(不用打html)
<a href="http://127.0.0.1:5000/fuye">查看更多</a>
<a href="/fuye">查看更多</a>

# 当前页面打开
<a href="/fuye">点击跳转</a>
# 在一个新的页面中打开
<a href="/fuye" target="_blank">点击跳转</a>
# 若超链接想结合图片,达到点击图片就可以跳转页面的效果,可以按照如下格式来进行操作
<a href="https://www.baidu.com" target="_blank">
	<img style="height: 100px; width: 120px" src="/static/1.png" />
</a>
<a href="https://www.baidu.com" target="_blank">
	<img style="height: 100px; width: 120px" src="/static/1.png" />
</a>

在这里插入图片描述

2.4.6 图片

<img src="图片地址" />
# 直接显示别人的图片有一些图片无法显示的,说明网站加了防盗链
<img src="https://img1.baidu.com/it/u=1946973825,778171862&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=800" />
# 显示自己的图片:
# -自己项目中创建:static目录,图片要放在static
# -在页面上引入图片
<img src="/static/1.png" />
<img style="height: 100px; width: 120px" src="/static/1.png" />
<img style="width: 10%" src="/static/1.png" />

小结

# 学习的标签(在body里的)
- 块级标签
<h1></h1>
<div></div>
- 行内标签
<span><\span>
<a href=""></a>
<img src="" />

2.4.7 列表

# 这也是一个块级标签
# 会列出一个列表(每个列前面加上一个点)
<ul>
	<li>中国移动</li>
	<li>中国l联通</li>
	<li>中国电信</li>
</ul>

# 会列出一个列表(每个列前面加上序号)
<ol>
	<li>中国移动</li>
	<li>中国l联通</li>
	<li>中国电信</li>
</ol>

运行结果如下:
在这里插入图片描述

2.4.8 表格

# border="1"(给表格加一个边框),thead(表头),tbody(表数据),tr(代表一行)
<h1>表格</h1>
        <table border="1">
            <thead>
                <tr> <th>姓名</th> <th>学号</th> </tr>
            </thead>
            <tbody>
                <tr> <td>小明</td> <td>1</td> </tr>
                <tr> <td>小红</td> <td>2</td> </tr>
                <tr> <td>小蓝</td> <td>3</td> </tr>
            </tbody>
        </table>
	

运行结果如下:
在这里插入图片描述

# 正规的表格写法
<h1>表格</h1>
        <table border="1">
            <thead>
                <tr>
                    <th>头像</th>
                    <th>姓名</th>
                    <th>学号</th>
                    <th>更多信息</th><th>操作</th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>
                        <img style="height: 50px" src="/static/1.png">
                    </td>
                    <td>小明</td>
                    <td>2020165315</td>
                    <td>
                        <a href="/fuye" target="_blank">点击查看详</a>
                    </td>
                    <td>
                        编辑
                        删除
                    </td>
                </tr>
            </tbody>
        </table>

运行结果如下:
在这里插入图片描述

2.4.9 input系列

# 输入框
<input type="text">
# 密码框
<input type="password">
# 选择文件框
<input type="file">
# 单选框(要写两个同名name,保证他们互斥)
<input type="radio" name="n1"><input type="radio" name="n1">女
# 复选框
<input type="checkbox">篮球
<input type="checkbox">足球
<input type="checkbox">乒乓球
<input type="checkbox">棒球
# 按钮(一个是普通的按钮,一个是可以提交表单)
<input type="button" value="提交">
<input type="submit" value="提交">

运行结果如下:
在这里插入图片描述

2.4.10 下拉框

# multiple可加可不加
<select multiple>
        <option>北京</option>
        <option>上海</option>
        <option>深圳</option>
</select>

运行结果如下:
在这里插入图片描述

2.4.11多行文本

# 输出一个文本框
<textarea rows="3"></textarea>

运行结果如下:
在这里插入图片描述

知识点回顾与补充:

1、网站请求流程:
在这里插入图片描述
2、一大堆的标签

h/div/span/a/img/ul/li/table/input/textarea/select

3、网络请求
(1)在浏览器的URL中写入地址,点击回车,访问。

浏览器会发送数据过去,本质上发送的是字符串:
“get /explore http…”
浏览器会发送数据过去,本质上发送的是字符串:
“get /explore http…\n数据库”

(2)浏览器向后端发送请求时
1)、get请求【URL方法/表单提交】
现象:GET请求、跳转、向后台传入数据,数据会拼接在URL上。
http://www.sogou.com/web?query=安卓&age=19&name=xx
注意:GET请求数据会在URL中体现。
2)POST请求【表单提交】
现象:提交数据不在URL中,而是在请求中体现。
4、只有input系列、下拉框和多行文本,这些能进行用户交互的信息,才能被提交表单到后台
注:返回的是name和value值

案例:用户注册

1、新创建项目
2、创建Flask代码
页面上的数据,想要提交到后台:
1、form标签包裹要提交的
提交方式:method=“get”
提交的地址:action=“/xxx/xxx/xx”
在from标签里面必须有一个submit标签
2、在form里面的一些标签:input/select/textarea
一定要写name属性,name要有具体含义

# webserver.py
from flask import Flask, render_template, request

app = Flask(__name__)

# 这里的/get/reg地址只能接收get请求(输入(发送)URL,flask响应get请求),返回页面
@app.route('/', methods=['GET', 'POST'])
def get_register():
    # 1、接收用户通过GET形式发送过来的数据
    if request.method == 'GET':
        return render_template('register.html')
    else:
        # 1、接收用户通过POST形式发送过来的数据,(输入内容,flask响应POST请求),返回表单
        # 输出都是通过name值去找到value值的(value:1、自定义;2、用户输入;)
        user = request.form.get('user')
        password = request.form.get('pwd')
        gender = request.form.get('gender')
        hobby_list = request.form.get('hobby')
        city = request.form.get('city')
        skill_list = request.form.get('skill')
        more = request.form.get('more')
        print(user, password, gender, hobby_list, city, skill_list, more)
        print(request.form)
        # 将用户信息写入文件中实现注册,写入到excel中实现注册,写出数据库中实现注册
        return "注册成功"

if __name__ == '__main__':
    app.run(port=5001, debug=True)
# templates/register.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
</head>
<body>
<h1>用户注册</h1>
<div>
    <form method="post" action="/">
        <div>
            用户名:<input type="text" name="user">
        </div>
        <div>
            密码:<input type="password" name="pwd">
        </div>
        <div>
            性别:
            <input type="radio" name="gender" value=""><input type="radio" name="gender" value=""></div>
        <div>
            爱好:
            <input type="checkbox" name="hobby" value="足球">足球
            <input type="checkbox" name="hobby" value="篮球">篮球
            <input type="checkbox" name="hobby" value="羽毛球">羽毛球
            <input type="checkbox" name="hobby" value="棒球">棒球
        </div>
        <div>
            城市:
            <select name="city">
                <option value="北京">北京</option>
                <option value="上海">上海</option>
                <option value="深圳">深圳</option>
            </select>
        </div>
        <div>
            擅长领域:
            <select name="skill" multiple>
                <option value="吃饭">吃饭</option>
                <option value="睡觉">睡觉</option>
                <option value="打豆豆">打豆豆</option>
            </select>
        </div>
        <div>
            备注:
            <textarea rows="3" name="more"></textarea>
        </div>
        <input type="submit" value="sumbit提交">
    </form>
</div>
</body>
</html>

总结

1、称呼
HTML标签:浏览器能识别的标签
什么是HTML?超文本传输语言(与浏览器搭配)
2、HTML标签(默认格式样式、以后通过手段可以修改)
3、HTML标签与编程语言无关
(1)java+HTML
(2)c#+HTML
(3)php+HTML
(4)python+HTML
4、注意:HTML标签非常多,不必逐一学会