标签
html示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>中国联通</h1>
</body>
</html>
标准格式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>内容</h1>
</body>
</html>
head
<head>
<meta charset="UTF-8"> <!--编码格式-->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>网页标题</title>
</head>
标题
<body>
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
</body>
div和span
- div: 占一整行(块级标签)
- span: 用多少占多少(行内标签/内联标签)
- 两个 span 标签不在同一行,页面显示时会在同一行,中间以一个空格分隔
- 两个 span 标签在同一行,页面显示时会在同一行,中间没有空格,连着
这两上标签比较素 + CSS样式
<div>内容</div>
<span>abcd</span>
超链接
选择跳转自己网站的地址,或者跳转外部的网站
在新的 Tab 标签页打开链接
- 添加 target="_blank"
<body>
<a href="/get/news">点击跳转新闻页</a></br>
<a href="https://v.vimll.com:9999">点击跳转自己的网站</a></br>
<a href="http://www.baidu.com">点击跳转别人的网站百度</a>
<!--标签的嵌套,点击图片跳转新标签页-->
<a href="https://www.mi.com/shop/buy/detail?product_id=16642" target="_blank">
<img src="https://cdn.cnbj1.fds.api.mi-img.com/nr-pub/202210262033_ef39fca0e37395d07682124770fd3ad9.png" style="width: 150px;"/>
</a>
</body>
图片
<body>
<h1>我是内部链接,显示图片,原比例</h1>
<img src="https://t7.baidu.com/it/u=848096684,3883475370&fm=193&f=GIF"/>
<!--style="height: 100px;width: 150px;"可只设置单一参数原比例自动缩放-->
<h1>显示自己本地的图片只设置高</h1>
<img style="width: 200px" src="/static/haha.png"/>
<h1>显示自己本地的图片并设置宽高</h1>
<img style="height: 100px" src="/static/haha.png"/>
</body>
小结
- 块级标签
- <h1></h1>
- <div></div>
- 行内标签
- <span></span>
- <a></a>
- <img />
标签的嵌套
实现: 点击图片,跳转至指定页面
<body>
<a href="https://www.mi.com/shop/buy/detail?product_id=16642">
<img src="https://cdn.cnbj1.fds.api.mi-img.com/nr-pub/202210262033_ef39fca0e37395d07682124770fd3ad9.png" style="width: 150px;"/>
</a>
</body>
列表
无序列表
<ul>
<li>中国移动</li>
<li>中国联通</li>
<li>中国电信</li>
</ul>
有序列表
<ol>
<li>中国移动</li>
<li>中国联通</li>
<li>中国电信</li>
</ol>
表格
<tr><th>ID</th><th>姓名</th><th>年龄</th></tr> 一行三列
<tr></tr>表示行
<th></th>表示列
<td>标签用于定义表格中的单元格。它是<tr>标签的子元素,表示表格中的每个数据单元。
为表格增加边框 <table border="1">
<body>
<table border="1"> <!--border增加边框-->
<thead>
<tr><th>ID</th><th>姓名</th><th>年龄</th></tr>
</thead>
<tbody>
<tr><td>10</td><td>张三</td><td>20</td></tr>
<tr><td>11</td><td>李四</td><td>20</td></tr>
<tr><td>12</td><td>王五</td><td>20</td></tr>
<tr><td>13</td><td>赵六</td><td>20</td></tr>
</tbody>
</table>
</body>
imput系列
<!-- 文本与密码 -->
<input type="text" />
<input type="password" />
<!-- 选择文件 -->
<input type="file" />
<!-- 单选框 同名互斥 -->
<input type="radio" name="n1" />男
<input type="radio" name="n1" />女
<!-- 复选框 -->
<input type="checkbox" />唱
<input type="checkbox" />跳
<input type="checkbox" />Rap
<input type="checkbox" />篮球
<!-- 按钮 -->
<input type="button" value="提交"/> 普通按钮
<input type="submit" value="提交"/> 提交表单
下拉框
<!-- 下拉框 multiple可多选 -->
<select multiple>
<option>北京</option>
<option>上海</option>
<option>深圳</option>
<option>广州</option>
<option>杭州</option>
<option>南京</option>
<option>成都</option>
</select>
多行文本
<!-- 多行文本 大小分别在cols属性(水平方向)和rows属性(垂直方向)中确定最大字符数 -->
<textarea cols="10" rows="3"></textarea>
用户注册案例
GET 方法与 POST 方法的区别
- GET: 可通过URL/表单提交
- POST: 只能通过表单提交,提交数据不在URL而是在请求体中
表单可以提交的前提条件:
- 提交方式: method="get"
- 提交地址: action="/xxx/xxx/xxx"
- 在form标签里面必须有一个submit标签
- 每个标签有name属性
GET 方式
修改app.py,导入request方法,使用/do/register接收用户数据并展示
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/register', methods=['GET'])
def register():
return render_template('register.html')
@app.route("/do/register", methods=['GET'])
def do_register():
get_info = request.args
return get_info
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5200, debug=True)
提交后URL变化:http://168.12.1.50:5100/do/register?username=tang&password=123
{
"password": "123",
"username": "tang"
}
<!--修改templates下的register.html-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>用户注册</h1>
<form action="/do/register" method="get">
<div>
用户名: <input type="text" name="username">
</div>
<div>
密码: <input type="password" name="passwd">
</div>
<input type="submit" value="提交">
</form>
</body>
</html>
POST 方式
修改app.py
@app.route("/post/register", methods=['POST'])
def post_register():
get_info = request.form
return get_info
提交后URL变化:http://168.12.1.50:5100/post/register
{
"password": "123",
"username": "tang"
}
<!--修改register.html <form action="/post/register" method="post"> -->
<body>
<h1>用户注册</h1>
<form action="/post/register" method="post">
<div>
用户名: <input type="text" name="username">
</div>
<div>
密码: <input type="password" name="passwd">
</div>
<input type="submit" value="提交">
</form>
</body>
表单数据提交优化
修改 register.html 添加 name 与 value 属性
@app.route("/register", methods=['GET', 'POST'])
def register():
if request.method == "GET":
return render_template("register.html")
else:
# get_info = request.form
username = request.form.get("username")
password = request.form.get("password")
gender = request.form.get("gender")
hobby_list = request.form.getlist("hobby")
city = request.form.get("city")
skill_list = request.form.getlist("skill")
more = request.form.getlist("备注")
print(username, password, gender, hobby_list, city, skill_list, more)
# tang 123456 男 ['篮球', '足球', '乒乓球'] 北京 ['吃饭', '睡觉', '游戏'] ['哈哈哈']
get_info = request.form
return get_info
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户注册</title>
</head>
<body>
<div><h3>用户注册</h3></div>
<form action="/register" method="post">
<div>
用户名:<input type="text" name="username"/>
</div>
<div>
密码:<input type="password" name="password" />
</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="乒乓球" />乒乓球
</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 cols="30" rows="10" name="备注"></textarea>
</div>
<div>
<input type="button" value="button提交">
<input type="submit" value="submit提交">
</div>
</form>
</body>
</html>