【Django学习笔记(一)】HTML语言简介和基于Flask Web框架快速搭建网站

news2024/11/27 16:48:00

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 表单提交的前提条件
  1. form 标签包裹要提交的数据的标签
  2. 提交方式:methon="get"
  3. 提交的地址:action="/xxx/xxx/xx"
  4. form标签里必须有一个submit标签
  5. 每个标签有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 就可以接收用户通过表单发送过来的数据。

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

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

相关文章

MongoDB内存过高问题分析解决

告警 公司有个3.2.7版本的mongo复制集&#xff0c;最近几天频繁告警内存过高。 服务器配置16C64G内存。mongo备节点内存使用到55G&#xff0c;触发告警。 以下内容基于3.2.7版本&#xff0c;3.2.7版本已经太老&#xff0c;很多后来的命令和配置&#xff0c;3.2.7都没有。 …

信息安全之网络安全防护

先来看看计算机网络通信面临的威胁&#xff1a; 截获——从网络上窃听他人的通信内容中断——有意中断他人在网络上的通信篡改——故意篡改网络上传送的报文伪造——伪造信息在网络上传送 截获信息的攻击称为被动攻击&#xff0c;而更改信息和拒绝用户使用资源的攻击称为主动…

OpenGL 实现“人像背景虚化“效果

手机上的人像模式,也被人们称作“背景虚化”或 ”双摄虚化“ 模式,也称为 Bokeh 模式,能够在保持画面中指定的人或物体清晰的同时,将其他的背景模糊掉。突出画面的主体部分,主观上美感更强烈。 人像模式的一般实现原理是,利用双摄系统获取景深信息,并通过深度传感器和图…

超市收银系统-亿发智能收银,引领线上线下一体化新零售管理

社交新零售的传播核心在于移动互联网。从信任关系的角度来看&#xff0c;移动互联网为用户之间搭建了沟通的桥梁&#xff0c;促进了人们之间更频繁的交流&#xff0c;从而建立了信任关系。从场景的角度来看&#xff0c;移动互联网使得用户之间的沟通更加多样化&#xff0c;包括…

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

Aino AI,一个空间数据查询和分析的应用

简介 chatgpt的出现掀起了一大波行业革命&#xff0c;或许也包括我们地信行业。分享一下Aino AI&#xff0c;一个基于AI的GIS应用。 Aino公司在今年推出了 Aino AI 助手&#xff0c;它可以通过自然语言的方式自动化处理空间数据&#xff0c;通过和OpenStreetMap的结合实现无缝…

太阳能发电园区3D可视化:揭秘绿色能源新纪元

在科技飞速发展的今天&#xff0c;绿色能源已成为推动社会进步的重要力量。太阳能发电作为绿色能源的重要代表&#xff0c;正在全球范围内掀起一股清洁能源的革命浪潮。 太阳能发电园区作为集中展示太阳能发电技术和应用的场所&#xff0c;其规模之大、设备之复杂&#xff0c;常…

#Linux系统编程(消息队列)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;什么是消息队列 消息队列是一种先进先出的队列型数据结构&#xff0c;实际上是系统内核中的一个内部链表。消息被顺序插入队列中&#xff…

QT QInputDialog弹出消息框用法

使用QInputDialog类的静态方法来弹出对话框获取用户输入&#xff0c;缺点是不能自定义按钮的文字&#xff0c;默认为OK和Cancel&#xff1a; int main(int argc, char *argv[]) {QApplication a(argc, argv);bool isOK;QString text QInputDialog::getText(NULL, "Input …

故障排查指南:通过连接电脑查找iOS应用崩溃日志的有效技巧

在iOS应用开发过程中&#xff0c;调试日志和奔溃日志是开发者必不可少的工具。当iOS手机崩溃时&#xff0c;我们可以连接电脑并使用Xcode Console等工具来查看日志。然而&#xff0c;这种方式可能不够方便&#xff0c;并且处理奔溃日志也相当繁琐。克魔助手的出现为开发者带来了…

推荐!00 后都在用的6个超实用微信小程序,又能少装N个app啦

在这个手机内存永远不够用的年代&#xff0c;每一次下载新app都像是在和手机进行一场心理博弈——不下载就out&#xff0c;下载了又怕手机喘不过气来。好在&#xff0c;微信小程序如同一股清流&#xff0c;轻巧地滑入我们的生活&#xff0c;解救了那些对“存储空间不足”弹窗深…

【数据结构 | 图论】如何用链式前向星存图(保姆级教程,详细图解+完整代码)

一、概述 链式前向星是一种用于存储图的数据结构&#xff0c;特别适合于存储稀疏图&#xff0c;它可以有效地存储图的边和节点信息&#xff0c;以及边的权重。 它的主要思想是将每个节点的所有出边存储在一起&#xff0c;通过数组的方式连接&#xff08;类似静态数组实现链表…

基于51单片机的汽车安全带检测控制器Proteus仿真

地址&#xff1a;https://pan.baidu.com/s/1To_ZEiJHBrZnm9ejYHFoPg 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52简介&#xff1a; AT89C52是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectronics&#xff09;公…

Numpy 初体验

文章目录 第1关&#xff1a;Numpy 创建数组第2关&#xff1a;Numpy 数组的基本运算第3关&#xff1a;Numpy 数组的切片与索引第4关&#xff1a;Numpy 数组的堆叠第5关&#xff1a;Numpy 的拆分 第1关&#xff1a;Numpy 创建数组 编程要求 本关的任务是&#xff0c;补全右侧编辑…

查询优化-提升子查询-UNION类型

瀚高数据库 目录 文档用途 详细信息 文档用途 剖析UNION类型子查询提升的条件和过程 详细信息 注&#xff1a;图片较大&#xff0c;可在浏览器新标签页打开。 SQL: SELECT * FROM score sc, LATERAL(SELECT * FROM student WHERE sno 1 UNION ALL SELECT * FROM student…

Mybatis中QueryWrapper的复杂查询SQL

最近在使用QueryWrapper编写查询语句时发现复杂的SQL不会写。在网上找了半天&#xff0c;终于得到了点启示。在此做个记录以备忘。 我要实现的SQL是这样的&#xff1a; -- 实现这个复杂查询 -- 查询设备表 select * from oa_device where ((dev_code BSD1003 and dev_status…

系统开发实训小组作业week5 —— 用例描述与分析

目录 4.3 UC003电影浏览与查询 4.3.1 用例描述 4.3.2 活动图 4.3.3 界面元素 4.3.4 功能 4.4 UC004在线订票 4.4.1 用例描述 4.4.2 活动图 4.4.3 界面元素 4.4.4 功能 4.3 UC003电影浏览与查询 4.3.1 用例描述 用例号 UC003-01 用例名称 电影浏览与查询 用例描述…

2.9 Python缩进规则(包含快捷键)

Python缩进规则&#xff08;包含快捷键&#xff09; 和其它程序设计语言&#xff08;如 Java、C 语言&#xff09;采用大括号“{}”分隔代码块不同&#xff0c;Python采用代码缩进和冒号&#xff08; : &#xff09;来区分代码块之间的层次。 在 Python 中&#xff0c;对于类…

数据可视化为什么能在智慧港口中发挥作用?

随着全球贸易活动日益频繁&#xff0c;港口作为国际贸易的重要节点&#xff0c;其运营效率与智能化程度直接影响着整个物流链的效能。在此背景下&#xff0c;智慧港口的概念应运而生&#xff0c;它借助先进的信息技术手段对传统港口进行改造升级&#xff0c;其中&#xff0c;数…

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程 摘要个人简介下载Mysql安装Mysql配置环境变量 摘要 MySQL 8.0.11的安装过程涉及几个关键步骤&#xff0c;首先访问MySQL官方网站下载页面&#xff0c;选择操作系统相对应的MySQL版本进行下载。对于Windows用户&#xff0c;启动下…