HTML语言简介和基于Flask Web框架快速搭建网站
- 前言
- 正文
- 1、本专栏学习的主要目的
- 2、Flask Web框架
- 2.1 安装 Flask web 框架
- 2.2 创建网站的基本方法
- 2.3 templates 模板
- 3、HTML 语言简介
- 3.1 编码
- 3.2 title
- 3.3 标题
- 3.4 div 和 span
- 3.5 超链接
- 3.6 图片
- 3.6.1 直接显示别人的图片地址
- 3.6.2 显示自己的图片
- 3.6.3 设置图片的高度和宽度
- 3.7 列表
- 3.7.1 无序的列表
- 3.7.2 有序的列表
- 3.8 表格
- 3.9 input系列
- 3.9.1 文本输入框text
- 3.9.2 密码输入框password
- 3.9.3 文件选择框file
- 3.9.4 单选框radio
- 3.9.5 复选框checkbox
- 3.9.6 按键button
- 3.9.7 提交submit
- 3.10 下拉框
- 3.10.1 单选下拉框
- 3.10.2 复选下拉框
- 3.11 多行文本
- 3.12 HTML案例:用户注册
- 3.12.1 网络请求
- 3.12.2 GET请求
- 3.12.3 POST请求
- 3.12.4 用户注册案例
- 3.12.4.1 新建项目tFlaskAccountDemo
- 3.12.4.2 编写app.py文件
- 3.12.4.3 表单提交的前提条件
- 3.12.4.4 创建register.html
- 3.12.4.5 在app.py下创建do_register()方法
- 3.12.4.6 通过GET请求提交表单运行效果
- 3.12.4.7 通过POST请求提交表单运行效果
前言
在本篇文章中,我们将简要探讨 HTML 语言的一些基本用法,包括如何创建图片、超链接和表格等元素,并展示如何基于 Flask Web 框架迅速构建一个简洁的网站。
正文
1、本专栏学习的主要目的
本教程或本专栏学习的主要目的是:开发一个平台(网站)
前端开发语言主要有:HTML 、CSS、 JavaScript等;
Web 框架:接收请求并处理
MySQL 数据库:存储数据地方
通过对本专栏的学习:
一阶段(快速上手):基于 Flask Web 框架快速搭建一个网站出来;
二阶段(深入学习):基于 Django 框架(主要)开发网站。
2、Flask Web框架
2.1 安装 Flask web 框架
pip install flask
2.2 创建网站的基本方法
from flask import Flask
app = Flask(__name__)
#创建了网站 /show/info 和 函数index 的对应关系
#以后用户在浏览器上访问 /show/info。网站自动执行 index
@app.route("/show/info")
def index():
return "创建网站成功"
if __name__ == '__main__':
app.run()
运行后效果:
打开:http://127.0.0.1:5000 后:
在网站 URL 后输入 /show/info,按回车建:
说明运行到这一步,说明网站创建成功。
2.3 templates 模板
上述中通过 return
方法返回 HTML 内容的方式不方便进行管理,因此引入 templates
模板
导入 flask
模块时同时导入 render_template
from flask import Flask, render_template
app = Flask(__name__)
# 创建了网站 /show/info 和 函数index 的对应关系
# 以后用户在浏览器上访问 /show/info。网站自动执行 index
@app.route("/show/info")
def index():
# Flask内部会自动打开这个文件,并读取内容,将内容给用户返回
# 默认:去当前项目目录的templates文件夹中找
return render_template("index.html")
在项目的根目录下创建 templates
文件夹
编写 index.html
文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask练习</title>
</head>
<body>
<h1>Flask</h1>
</body>
</html>
运行后,刷新浏览器,网站变成以下样式:
3、HTML 语言简介
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask练习</title>
</head>
<body>
<h1>Flask</h1>
</body>
</html>
上文中创建的 index.html
中的标签语言就是 HTML 语言,是一种浏览器能够识别的标签。
浏览器页面的呈现内容在<body> </body>
标签中;
在<head> </head>
中可以设置编码、title等。
3.1 编码
在<head>
标签中的 <meta>
中可以设置编码
<meta charset="UTF-8">
3.2 title
<title>Flask练习</title>
3.3 标题
标题属于 《块级标签》
《块级标签》 :自己占一整行
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
运行后,刷新浏览器:
3.4 div 和 span
<div>内容</div>
<span>内容</span>
- div:一个人占一整行 【块级标签】
- span:自己有多大就占多少 【行内标签、内联标签】
注意:这两个标签比较素,通过CSS进行美化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask练习</title>
</head>
<body>
<div>div中的内容1</div>
<div>div中的内容1</div>
<span>span中的内容1</span>
<span>span中的内容2</span>
</body>
</html>
运行后,刷新浏览器:
可以看到:两个<div>
标签分别在两行;两个<span>
标签在同一行;
3.5 超链接
通过超链接可以跳转到外部网站,也可以跳转到自己的网站。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask练习</title>
</head>
<body>
<a href="/get/news">点击跳转自己的网站</a>
<a href="http://www.baidu.com">点击跳转别人的网站</a>
</body>
</html>
跳转到自己的网站,需要添加新的配置:
from flask import Flask, render_template
app = Flask(__name__)
# 创建了网站 /show/info 和 函数index 的对应关系
# 以后用户在浏览器上访问 /show/info。网站自动执行 index
@app.route("/show/info")
def index():
# Flask内部会自动打开这个文件,并读取内容,将内容给用户返回
# 默认:去当前项目目录的templates文件夹中找
return render_template("index.html")
# 添加新配置
@app.route("/get/news")
def get_news():
return render_template("get_news.html")
在 templates
目录下新添加一个 get_news.html
文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>详细信息</h1>
<div>
已经成功跳转
</div>
</body>
</html>
运行后,刷新浏览器:
点击跳转自己的网站:
点击跳转到别人的网站:
通过以上方法跳转,会在当前页面跳转,如果需要在新的页面打开,添加 target=“_blank”
:
# 当前页面打开
<a href="/get/news">点击跳转</a>
# 新的页面打开
<a href="/get/news" target="_black">点击跳转</a>
3.6 图片
3.6.1 直接显示别人的图片地址
<img src="图片地址" /> 【自闭合标签】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask练习</title>
</head>
<body>
<h1>图片</h1>
<img src="https://cdn.cnbj1.fds.api.mi-img.com/nr-pub/202210262033_ef39fca0e37395d07682124770fd3ad9.png"/>
</body>
</html>
运行后,刷新浏览器:
3.6.2 显示自己的图片
-
在项目目录中创建
static
目录,图片要放在static
目录中
-
在页面上引入图片
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Flask练习</title> </head> <body> <h1>图片</h1> <img src="/static/a2.png"/> </body> </html>
运行后,刷新浏览器:
3.6.3 设置图片的高度和宽度
<body>
<h1>图片</h1>
<img style="height:200px;width:200px" src="/static/a2.png"/>
</body>
运行后,刷新浏览器:
3.7 列表
3.7.1 无序的列表
<h1>运营商列表</h1>
<ul>
<li>中国联通</li>
<li>中国移动</li>
<li>中国电信</li>
</ul>
运行后,刷新浏览器:
3.7.2 有序的列表
<h1>有序运营商列表</h1>
<ol>
<li>中国联通</li>
<li>中国移动</li>
<li>中国电信</li>
</ol>
运行后,刷新浏览器:
3.8 表格
<h1>表格</h1>
<table>
<thead>
<tr><th>ID</th><th>Name</th><th>age</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>Jack</td><td>20</td></tr>
<tr><td>2</td><td>Marry</td><td>35</td></tr>
<tr><td>2</td><td>Mac</td><td>18</td></tr>
</tbody>
</table>
运行后,刷新浏览器:
为表格增加边框:
<table border="1">
运行后,刷新浏览器:
3.9 input系列
3.9.1 文本输入框text
<input type="text" >
3.9.2 密码输入框password
<input type="password">
3.9.3 文件选择框file
<input type="file" >
3.9.4 单选框radio
<input type="radio" name="n1">男
<input type="radio" name="n1">女
3.9.5 复选框checkbox
<input type="checkbox">篮球
<input type="checkbox">足球
<input type="checkbox">排球
3.9.6 按键button
<input type="button" value="登录"> -->普通的按钮
3.9.7 提交submit
<input type="submit" value="提交"> -->提交表单
3.10 下拉框
3.10.1 单选下拉框
<h1>下拉框</h1>
<select>
<option >北京</option>
<option >上海</option>
<option >深圳</option>
</select>
运行后,刷新浏览器:
3.10.2 复选下拉框
<h1>下拉框</h1>
<select multiple>
<option >北京</option>
<option >上海</option>
<option >深圳</option>
</select>
运行后,刷新浏览器:
需要复选时,按住Shift建
3.11 多行文本
通过 rows
属性可以设置多行文本框的显示行数
<h1>多行文本</h1>
<textarea rows="5"></textarea>
运行后,刷新浏览器:
3.12 HTML案例:用户注册
3.12.1 网络请求
在浏览器的 url 中写入地址,点击回车,访问;浏览器会发送数据过去,本质上是字符串;
浏览器在向后端发送请求时,有两种请求方式,GET请求和POST请求。
3.12.2 GET请求
GET请求(URL方法、表单提交):
现象:GET请求、跳转、向后台传入数据时会拼接在 url
上
注意:GET请求的数据会在URL中体现
3.12.3 POST请求
POST请求(只能通过表单提交的方式)
现象:提交数据不在 url
中体现,在 请求体
中体现
3.12.4 用户注册案例
3.12.4.1 新建项目tFlaskAccountDemo
在 tFlaskAccountDemo 目录下创建 app.py 入口函数文件;
在 tFlaskAccountDemo 目录创建 templates 目录,存放 html 文件;
3.12.4.2 编写app.py文件
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/register')
def register():
return render_template('register.html')
if __name__ == '__main__':
app.run()
3.12.4.3 表单提交的前提条件
form
标签包裹要提交的数据的标签- 提交方式:
methon="get"
- 提交的地址:
action="/xxx/xxx/xx"
- 在
form
标签里必须有一个submit
标签 - 每个标签有
name
属性
3.12.4.4 创建register.html
在这里直接创建了两种提交方式:GET 和 POST
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户注册</h1>
<div>
<form method="get" action="/do/reg">
用户名:<input type="text" name="user">
密码:<input type="password" name="pwd">
<input type="submit" value="submit提交">
</form>
</div>
<h1>用户注册POST请求</h1>
<div>
<form method="post" action="/do/reg">
用户名:<input type="text" name="user">
密码:<input type="password" name="pwd">
<input type="submit" value="submit提交">
</form>
</div>
</body>
</html>
运行后,刷新浏览器:
3.12.4.5 在app.py下创建do_register()方法
用来接收用户的表单数据
@app.route("/do/reg", methods=["GET", "POST"])
def do_register():
# 1、接收用户通过GET形式发送过来的数据
if request.method == "GET":
get_info = request.args
return get_info
# 2、接收用户通过POST形式发送过来的数据
else:
user = request.form.get("user")
pwd = request.form.get("pwd")
print(request.form)
print(user, pwd)
get_info = request.form
return get_info
3.12.4.6 通过GET请求提交表单运行效果
3.12.4.7 通过POST请求提交表单运行效果
print(request.form)
print(user, pwd)
终端打印效果:
注意:一般以 POST 向后台提交数据 用 Flask
中的 request.form
就可以接收用户通过表单发送过来的数据。