前端

什么是前端

只要是跟用户打交道的界面都称为前端

后端:
	Python、Java、Go、PHP、nodejs(因可以操控数据库,所以也被归为后端语言)
    其都是一堆后端代码

为什么学前端

学习全栈开发,前端只是一部分

全栈:python,前端,mysql,linux,docker

前端需要学的内容

1.HTML  # 网页的骨架,没有任何的样式
2.CSS  # 给网页添加样式
3.JavaScript  # 让网页动起来

前端的框架:bootstrap,jquery,Vue,react.js angular.js

软件的开发架构

c/s 客户端和服务器
b/s 浏览器和服务器

在浏览器中输入网址,发生的事

1.浏览器向服务端发起请求
2.服务端接收请求
3.服务端处理请求返回结果
4.服务端将处理后的结果返回给浏览器,浏览器按照特定的规则渲染数据到页面中,展示给用户

浏览器是不是可以作为很多服务端的客户端
	例如:京东,淘宝,百度
    
浏览器如何识别不同的服务端
1.一定是返回的数据格式遵循浏览器规则

HTTP协议

超文本传输协议,规定浏览器跟服务端数据交互的格式

特性:
1.基于请求响应
2.在TCP/IP协议之上的用户层协议
3.无状态(指不能保存用户信息)
# 为了保存用户信息,又诞生了新技术来保存用户信息
# 例如:cookie session token
4.短链接(发送、接收一次信息之后就断开链接,需要发送数据的时候再次建立链接)
# 长链接:与短链接相对,不会发送、接收一次信息之后就断开链接,会长时间保持链接,一定时间后断开
# 长链接使用场景:即时通讯



请求数据格式:
1.请求首行(请求方式,协议版本)
2.请求头(一对k:v键值对)
3.\r\n
4.请求体()
# 注意:get请求没有请求体
# 只有post请求才有请求体

响应数据格式:
1.响应首行(协议版本)
2.请求头(一对k:v键值对)
3.\r\n
4.响应体()

响应状态码:
就是用一个数字代表具体的含义
1xx:请求成功,但是还可以继续提交数据
2xx:200请求成功
3xx:重定向(例如点击购物车时进行登录判断,未登录则转向登录界面)
4xx:404资源不存在
5xx:500服务器内部错误

请求方式:
1.get
	给服务端要数据的
2.post
	给服务端提交数据的

HTML简介

# 如果想让浏览器渲染你的图片,链接等等,就必须遵循HTML语法

<h1>hello big baby~</h1>
<a href='http://www.baidu.com'>click me</a>
<img src='https://img1.baidu.com/it/u=1538728258,361656027&fm=26&fmt=auto&gp=0.jpg' />

HTML代码的书写位置

1.在python中新建一个HTML文件
2.在txt文件内写好后改格式为html

打开HTML文件的两种方式

1.直接找到html文件,双击打开即可
2.在pycharm中,右键浏览器图标(前提是你必须安装了对应的浏览器)

HTML的文档结构

<head>
    <meta charset="UTF-8">
    <title>我是帅哥</title>
</head>
<body>

</body>
</html>

head标签内常用标签

head内的标签不是给用户看的,给浏览器看的
body内的标签是给用户看的,在body中写什么就显示什么

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我是帅哥</title>
    <style>
        h1{
            color: red;
        }
    </style>
    <link rel="stylesheet" href="mycss.css">  # 引入外部css样式
    <script src="myjs.js">  # 引入外部js样式
    # 写js代码
    </script>
</head>
<body>
<h1>你很丑</h1>
</body>
</html>

<meta name="keywords" content="meta总结,html meta,meta属性,meta跳转">
<meta name="description" content="老男孩教育Python学院">

HTML的标签分类

1.<title>我是帅哥</title>
2.<h1>hello big baby~</h1>
3.<a href='http://www.baidu.com'>click me</a>
4.<img src='https://img1.baidu.com/it/u=1538728258,361656027&fm=26&fmt=auto&gp=0.jpg' />

1:双标签
2:单标签

HTML注释

<!--这是单行注释  快捷键: ctrl + ? -->

<!--
这是单行注释  快捷键: ctrl + ?
这是单行注释  快捷键: ctrl + ?
这是单行注释  快捷键: ctrl + ?
这是单行注释  快捷键: ctrl + ?
这是单行注释  快捷键: ctrl + ?
这是单行注释  快捷键: ctrl + ?
 -->
    
<!--这是顶部代码开始-->

<!--这是顶部代码结束-->

<!--这是侧边栏代码-->

<!--这是侧边栏代码-->

body内常用标签

<b>加粗</b>
<i>斜体</i>
<u>下划线</u>
<s>删除</s>

<p>段落标签</p>

<h1>标题1</h1>
<h2>标题2</h2>
<h3>标题3</h3>
<h4>标题4</h4>
<h5>标题5</h5>
<h6>标题6</h6>

<br>
# 换行

<hr>
# 水平线

特殊字符

内容	对应代码
空格	 
>	>
<	<
&	&
¥	¥
版权	©
注册	®

标签的分类

1.块级元素
独自占一行的标签,称之为块级元素
例如:p标签,h1~h6,div标签

2.行内元素
自身文本有多大,就占多大
例子:i,u,s,b,span

# div span
# 这两个元素是专门为定义CSS样式而生的,如果单独在网页中插入,不会产生影响

标签嵌套

块级元素可以包含行内元素和部分块级元素
行内元素可以包含其他行内元素
注意:p标签不能包含块级标签和p标签

img标签

<img src="" alt="" title="" width="" height="">
'''
src:属性名
引号内:属性值
	1.src
		外链地址
			直接填写地址
		本地地址
			如果在同一个路径,直接写文件名
			如果文件在同一个路径下的一个文件夹内,例如abc,则写abc/文件
			如果文件在父路径下的一个文件夹内,例如abc,则写../abc/文件,有几个父路径写几个../
	2.alt
		当图片加载失败时写的一些描述性信息
	3.title
		悬浮提示
	4.width/height
		只写width="200"  将图片等比例缩放到200个像素大小
		width="200",height="200"  不等比例缩放到200:200大小
'''

a标签

<a href="写跳转的网址" title="" target="">点我</a>

1.href
	写跳转的网址
2.title
	悬浮提示
3.target
	_blank  另起页面跳转网址
    _self  本页面跳转网址