1 快速前端开发

1 前端开发

目的:开发一个平台(网站)- 前端开发:HTML、CSS、JavaScript- Web框架:接收请求并处理- MySQL数据库:存储数据地方快速上手:基于Flask Web框架让你快速搭建一个网站出来。

1.快速开发网站

pip install flask
from flask import Flaskapp = Flask(__name__)# 创建了网址 /show/info 和 函数index 的对应关系
# 以后用户在浏览器上访问 /show/info,网站自动执行 index
@app.route("/show/info")
def index():return "中国联通"if __name__ == '__main__':app.run()

咱们网站与别人的不一样:

  • 别人的好看 vs 咱们的难堪。

    浏览器可以识别很多标签+数据,例如:<h1>中国</h1>   						->  浏览器看见加大加粗<span style='color:red;'>联通</span>  ->  浏览器看见字体变红色如果我们能把浏览器能识别的所有的标签都学会,我们在网站就可以控制页面到底长什么样子。
    
  • Flask框架为了让咱们写标签方便,支持将字符串写入到文件里。

  • from flask import Flask,render_templateapp = Flask(__name__)@app.route("/show/info")
    def index():# Flask内部会自动打开这个文件,并读取内容,将内容给用户返回。# 默认:去当前项目目录的templates文件夹中找。return render_template("index.html")if __name__ == '__main__':app.run()
    

2.浏览器能识别的标签

2.1 编码(head)

<meta charset="UTF-8">

2.2 title(head)

<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>4级标题</h4><h5>5级标题</h5><h6>6级标题</h6>
</body>
</html>

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,自己多大占多少。【行内标签、内联标签】

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>我的联通</title>
    </head>
    <body><span>山东蓝翔</span><span>挖掘机哪家强</span>
    </body>
    </html>

注意:这两个标签比较素 + CSS样式。

2.4.5 超链接

跳转到其他网站
<a href="http://www.chinaunicom.com.cn/about/about.html">点击跳转</a>
跳转到自己网站其他的地址<a href="http://127.0.0.1:5000/get/news">点击跳转</a>
<a href="/get/news">点击跳转</a>
# 当前页面打开
<a href="/get/news">点击跳转</a># 新的Tab页面打开
<a href="/get/news" target="_blank">点击跳转</a>

2.4.6 图片

<img src="图片地址" />
直接显示别人的图片地址(防盗链):
<img src="https://pic4.zhimg.com/v2-b23f984c2aeaa7bed12e890b4338d499_720w.jpg" />
<img src="自己图片的地址" />
显示自己的图片:- 自己项目中创建:static目录,图片要放在static- 在页面上引入图片<img src="/static/wbq.png" />

关于设置图片的高度和宽度

<img src="图片地址" style="height:100px; width:200px;" />
<img src="图片地址" style="height:10%; width:20%;" />

小结

  • 学习的标签

    <h1></h1>
    <div></div>
    <span></span>
    <a></a>
    <img />
    
  • 划分

    - 块级标签<h1></h1><div></div>
    - 行内标签<span></span><a></a><img />
    
  • 嵌套

    <div><span>xxx</span><img /><a></a>
    </div>
    

案例:商品列表

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>商品列表</h1><a href="https://www.mi.com/redmiwatch2" target="_blank"><img src="/static/a1.jpeg" style="width: 150px">
</a><a href="https://www.mi.com/shouhuan6/nfc" target="_blank"><img src="/static/a2.jpeg" style="width: 150px">
</a><a href="https://www.mi.com/xiaomibuds3pro" target="_blank"><img src="/static/a3.jpeg" style="width: 150px">
</a></body>
</html>

2.4.7 列表

<ul><li>中国移动</li><li>中国联通</li><li>中国电信</li>
</ul>
<ol><li>中国移动</li><li>中国联通</li><li>中国电信</li>
</ol>

在这里插入图片描述

2.4.8 表格

<table><thead><tr>  <th>ID</th>  <th>姓名</th>   <th>年龄</th>  </tr></thead><tbody><tr>  <td>10</td>  <td>武沛齐</td>  <td>19</td>   </tr><tr>  <td>11</td>  <td>吴阳军</td>  <td>19</td>   </tr><tr>  <td>12</td>  <td>刘东</td>  <td>19</td>    </tr><tr>  <td>13</td>  <td>郭智</td>  <td>19</td>    </tr><tr>  <td>14</td>  <td>电摩</td>  <td>19</td>    </tr></tbody>
</table>

2.4.9 input系列(7个)

<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">乒乓球
<input type="checkbox">棒球<input type="button" value="提交">  -->普通的按钮
<input type="submit" value="提交">  -->提交表单

2.4.10 下拉框

<select><option>北京</option><option>上海</option><option>深圳</option>
</select><select multiple><option>北京</option><option>上海</option><option>深圳</option>
</select>

2.4.11 多行文本

<textarea></textarea>

知识点回顾和补充

  1. 网站请求的流程
    在这里插入图片描述

  2. 一大堆的标签

    h/div/span/a/img/ul/li/table/input/textarea/select
    
  3. 网络请求

    • 在浏览器的URL中写入地址,点击回车,访问。

      浏览器会发送数据过去,本质上发送的是字符串:
      "GET /explore http1.1\r\nhost:...\r\nuser-agent\r\n..\r\n\r\n"浏览器会发送数据过去,本质上发送的是字符串:
      "POST /explore http1.1\r\nhost:...\r\nuser-agent\r\n..\r\n\r\n数据库"
      
    • 浏览器向后端发送请求时

      • GET请求【URL方法 / 表单提交】

        • 现象:GET请求、跳转、向后台传入数据数据会拼接在URL上。

          https://www.sogou.com/web?query=安卓&age=19&name=xx
          

          注意:GET请求数据会在URL中体现。

      • POST请求【表单提交】

        • 现象:提交数据不在URL中而是在请求体中。

案例:用户注册

  • 新创建项目

  • 创建Flask代码

    from flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/register', methods=['GET', "POST"])
    def register():if request.method == "GET":return render_template('register.html')else:user = request.form.get("user")pwd = request.form.get("pwd")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.get("more")print(user, pwd, gender, hobby_list, city, skill_list, more)# 将用户信息写入文件中实现注册、写入到excel中实现注册、写入数据库中实现注册# 2.给用户再返回结果return "注册成功"if __name__ == '__main__':app.run()
  • HTML代码

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body>
    <h1>用户注册</h1><form method="post" action="/register"><div>用户名:<input type="text" name="user"/></div><div>密码:<input type="password" name="pwd"/></div><div>性别:<input type="radio" name="gender" value="1"><input type="radio" name="gender" value="2"></div><div>爱好:<input type="checkbox" name="hobby" value="10">篮球<input type="checkbox" name="hobby" value="20">足球<input type="checkbox" name="hobby" value="30">乒乓球<input type="checkbox" name="hobby" value="40">棒球</div><div>城市:<select name="city"><option value="bj">北京</option><option value="sh">上海</option><option value="sz">深圳</option></select></div><div>擅长领域:<select name="skill" multiple><option value="100">吃饭</option><option value="101">睡觉</option><option value="102">打球</option></select></div><div>备注:<textarea name="more"></textarea></div><input type="submit" value="submit按钮">
    </form></body>
    </html>

案例:登录()

见代码示例。

页面上的数据,想要提交到后台:

  • form标签包裹要提交的数据的标签。
    • 提交方式:method="get"
    • 提交的地址:action="/xxx/xxx/xx"
    • 在form标签里面必须有一个submit标签。
  • 在form里面的一些标签:input/select/textarea
    • 一定要写name属性 <input type="text" name="uu"/>

总结

  1. 称呼

    - 浏览器能够识别的标签(不专业)
    - HTML标签。什么是是HTML?超文本传输语言(与浏览器搭配)。
    
  2. HTML标签(默认格式样式、以后通过手段可以修改)

  3. HTML标签与编程语言无关

    • java + HTML
    • c# + HTML
    • php + HTML
    • python + HTML
  4. 提醒:HTML标签比较多,标签还有很多很多,不必逐一学会。

3.CSS样式

css,专门用来“美化”标签。

  • 基础CSS,写简单页面 & 看懂 & 改。
  • 模块,调整和修改。

3.1 快速了解

<img src="..." style="height:100px" /><div style="color:red;">中国联通</div>

3.2 CSS应用方式

1. 在标签上
<img src="..." style="height:100px" /><div style="color:red;">中国联通</div>
2. 在head标签中写style标签(*)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color:red;}</style>
</head>
<body><h1 class='c1'>用户登录</h1>
<h1 class='c1'>用户登录</h1>
<h1 class='c1'>用户登录</h1>
<h1 class='c1'>用户登录</h1></body>
</html>
3.写到文件中(*)
.c1{height:100px;
}.c2{color:red;
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="common.css" />
</head>
<body><h1 class='c1'>用户登录</h1>
<h1 class='c2'>用户登录</h1>
<h1 class='c2'>用户登录</h1>
<h1 class='c1'>用户登录</h1></body>
</html>
案例:flask中的应用(登录注册)

见示例:day11_account-1.zip

问题:用Flask框架开发不方便
  • 每次都需要重启
  • 规定有些文件必须要放在特定的文件夹
  • 新创建一个页面
    • 函数
    • HTML文件

有没有一种方式,可以让我快速的编写前端的代码并查看效果呢,最后再讲页面集成到Flask中。

Pycharm为我们提供了一种非常便捷开发前端页面的工具。

在这里插入图片描述

3.3 选择器

  • ID选择器

    #c1{}<div id='c1'></div>
    
  • 类选择器(最多)

    .c1{}<div clss='c1'></div>
    
  • 标签选择器

    div{}<div>xxx</div>
    
  • 属性选择器

    input[type='text']{border: 1px solid red;
    }
    .v1[xx="456"]{color: gold;
    }
    
    <input type="text">
    <input type="password"><div class="v1" xx="123">s</div>
    <div class="v1" xx="456">f</div>
    <div class="v1" xx="999">a</div>
    
  • 后代选择器

    .yy li{color: pink;
    }
    .yy > a{color: dodgerblue;
    }
    
    <div class="yy"><a>百度</a><div><a>谷歌</a></div><ul><li>美国</li><li>日本</li><li>韩国</li></ul>
    </div>
    

关于选择器:

多:类选择器、标签选择器、后代选择器
少:属性选择器、ID选择器

关于多个样式 & 覆盖的问题:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color: red;border: 1px solid red;}.c2{font-size: 28px;color: green;}</style>
</head>
<body><div class="c1 c2">中国联通</div>
</body>
</html>

补充:下面的不要覆盖我。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color: red !important;border: 1px solid red;}.c2{font-size: 28px;color: green;}</style>
</head>
<body><div class="c1 c2">中国联通</div>
</body>
</html>

3.4 样式

1. 高度和宽度
.c1{height: 300px;width: 500px;
}

注意事项:

  • 宽度,支持百分比。
  • 行内标签:默认无效
  • 块级标签:默认有效(霸道,右侧区域空白,也不给你占用)
2. 块级和行内标签
  • 块级
  • 行内
  • css样式:标签 -> display:inline-block

示例:行内&块级特性

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{display: inline-block;height: 100px;width: 300px;border: 1px solid red;}</style>
</head>
<body><span class="c1">中国</span><span class="c1">联通</span><span class="c1">联通</span><span class="c1">联通</span>
</body>
</html>

示例:块级和行内标签的设置

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style></style>
</head>
<body><div style="display: inline;">中国</div><span style="display: block;">联通</span>
</body>
</html>

注意:块级 + 块级&行内。

3.字体设置
  • 颜色
  • 大小
  • 加粗
  • 字体格式
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{color: #00FF7F;font-size: 58px;font-weight: 600;font-family: Microsoft Yahei;}</style>
</head>
<body><div class="c1">中国联通</div><div>中国移动</div>
</body>
</html>
4.文字对齐方式
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.c1{height: 59px;width: 300px;border: 1px solid red;text-align: center; /* 水平方向居中 */line-height: 59px; /* 垂直方向居中 */}</style>
</head>
<body><div class="c1">郭智</div>
</body>
</html>
5.浮动
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div><span>左边</span><span style="float: right">右边</span></div>
</body>
</html>

div默认块级标签(霸道),如果浮动起来,就不一样了。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.item{float: left;width: 280px;height: 170px;border: 1px solid red;}</style>
</head>
<body><div><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div></div>
</body>
</html>

如果你让标签浮动起来之后,就会脱离文档流。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.item {float: left;width: 280px;height: 170px;border: 1px solid red;}</style>
</head>
<body><div style="background-color: dodgerblue"><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div><div class="item"></div><div style="clear: both;"></div></div><div>你哦啊呀</div>
</body>
</html>
6.内边距

内边距,我自己的内部设置一点距离。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.outer{border: 1px solid red;height: 200px;width: 200px;padding-top: 20px;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;}</style>
</head>
<body><div class="outer"><div style="background-color: gold;">听妈妈的话</div><div>小朋友你是否下水道发</div></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.outer{border: 1px solid red;height: 200px;width: 200px;padding: 20px;}</style>
</head>
<body><div class="outer"><div style="background-color: gold;">听妈妈的话</div><div>小朋友你是否下水道发</div></div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.outer{border: 1px solid red;height: 200px;width: 200px;padding: 20px 10px 5px 20px;}</style>
</head>
<body><div class="outer"><div style="background-color: gold;">听妈妈的话</div><div>小朋友你是否下水道发</div></div>
</body>
</html>
7.外边距

外边距,我与别人加点距离。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div style="height: 200px;background-color: dodgerblue;"></div>
<div style="background-color: red;height: 100px;margin-top: 20px;"></div>
</body>
</html>

总结

  • body标签,默认有一个边距,造成页面四边都有白色间隙,如何去除呢?

    body{margin: 0;
    }
    
  • 内容居中

    • 文本居中,文本会在这个区域中居中。

      <div style="width: 200px; text-align: center;">武沛齐</div>
      
    • 区域居中,自己要有宽度 + margin-left:auto;margin-right:auto

      .container{width: 980px;margin: 0 auto;
      }<div class="container">adfasdf
      </div>
      
  • 父亲没有高度或没有宽度,被孩子支撑起来。

  • 如果存在浮动,一定记得加入 。
    在这里插入图片描述

  • 如果想要用别人的样式。
    在这里插入图片描述

  • 关于布局不知如何下手。

    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python基础】一文搞懂:Python 中轻量型数据库 SQLite3 的用法

一文搞懂&#xff1a;Python 中轻量型数据库 SQLite3 的用法 文章目录 一文搞懂&#xff1a;Python 中轻量型数据库 SQLite3 的用法1 引言2 SQLite3 简介3 基本步骤4 示例代码4.1 连接数据库4.2 创建表4.3 插入数据4.4 查询数据4.5 更新/删除数据4.6 关闭数据库连接 5 实例演示…

虚拟机安装intel架构的银河麒麟V10(SP1)

一 背景 银河麒麟是国产操作系统之一&#xff0c;是基于Linux内核的桌面操作系统&#xff0c;有自己的应用中心&#xff0c;具有一定的生态系统。今从官网下载了V10&#xff08;SP1&#xff09;镜像文件&#xff0c;在Windowns的VMware虚拟机上安装试用。 官网&#xff1a;http…

web缓存之nginx缓存

一、nginx缓存知识 网络缓存位于客户端和 "源服务器 "之间&#xff0c;保存着所有可见内容的副本。当客户端请求缓存中存储的内容时&#xff0c;它可以直接从缓存中检索内容&#xff0c;而无需与服务器通信。这样&#xff0c;网络缓存就 "接近 "了客户端&a…

idea git回滚之前提交记录

提交代码时&#xff0c;如果不小心提交了不需要提交的内容&#xff0c;在本地仓库中&#xff0c;此时需要回滚版本&#xff0c;如何回滚 1.打开git控制台&#xff0c;左下角git,选择要处理的分支&#xff0c;选择刷新获取最新git提交记录 2&#xff09;选中自己commit需要回滚…

软件测试|详解 Pytest 参数化:简化测试用例的编写

简介 Pytest 是一个广泛使用的 Python 测试框架&#xff0c;它提供了丰富的功能来编写和执行测试用例。其中一个强大的特性是参数化&#xff0c;它允许我们通过一种简洁的方式运行多个输入参数的相似测试用例&#xff0c;从而减少冗余的代码。本文将详细介绍 Pytest 的参数化功…

臻牧签约实在RPA,数据流通效率飙升!

臻牧是一家集研发、生产、销售、服务于一体的综合型公司&#xff0c;十年行业领跑&#xff0c;由“国民好演员”海清担任品牌代言人。陕西自有13000平米省级示范乳品工厂&#xff0c;牵手西交大成立小分子羊奶粉研究中心&#xff0c;每年千万投入持续攻坚科研&#xff0c;全线支…

Unicode编码:打破语言壁垒,实现无缝交流

Unicode编码是一种用于表示文本字符的编码系统&#xff0c;它旨在解决不同字符集之间相互兼容的问题&#xff0c;使各种语言和文化得以在数字世界中无缝交流。本文将从多个方面介绍Unicode编码的概念、原理及其在现实中的应用&#xff0c;为您揭示这个神秘编码背后的故事。 Un…

多个显示设备接入卡开机Logo问题分析报告

1 关键字 显示设备&#xff1b;HDMI&#xff1b;开机Logo&#xff1b; 2 问题描述 问题环境&#xff1a; 系统版本&#xff1a;OpenHarmony-3.2-Release 问题现象&#xff1a; 插入外接显示器&#xff0c;启动系统偶现卡开机Logo。 3 问题原因 3.1 正常机制 系统启动成…

汽车IVI中控开发入门及进阶(十二):手机投屏

前言: 汽车座舱有车载中控大屏、仪表/HUD多屏的显示能力,有麦克风/喇叭等车载环境更好的音频输入输出能力,有方控按键、旋钮等方便的反向控制输入能力,还有高精度的车辆数据等。但汽车座舱中控主机硬件计算能力升级迭代周期相对较长,汽车的应用和服务不够丰富。现在很多汽…

跟我学java|Stream流式编程——Stream 的终端操作

orEach 和 peek forEach和peek都是Stream API中用于遍历流中元素的操作方法&#xff0c;它们在处理流的过程中提供了不同的功能和使用场景。 forEach&#xff1a;forEach是一个终端操作方法&#xff0c;它接受一个Consumer函数作为参数&#xff0c;对流中的每个元素执行该函数…

电脑找不到d3dcompiler43.dll怎么修复,教你5个可靠的方法

d3dcompiler43.dll是Windows操作系统中的一个重要动态链接库文件&#xff0c;主要负责Direct3D编译器的相关功能。如果“d3dcompiler43.dll丢失”通常会导致游戏无法正常运行或者程序崩溃。为了解决这个问题&#xff0c;我整理了以下五个解决方法&#xff0c;希望能帮助到遇到相…

软件系统测试怎么进行?对软件产品起到什么作用?

软件系统测试是指通过测试软件的安装、配置、集成和功能等多个方面&#xff0c;以验证系统是否符合预期需求并达到预期目标的过程。在测试过程中&#xff0c;我们会通过数据输入、操作触发、接口调用、异常处理等手段对软件系统进行全面检测。 一、软件系统测试的进行步骤   …