zoukankan      html  css  js  c++  java
  • 前端-HTTP

    前端

    HTTP:搭建网页骨架

    CSS:给骨架美化骨架

    JS:控制网页的动态效果

    HTML是什么?

    • 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言。
    • 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页。对于不同的浏览器,对同一个标签可能会有不同的解释。(兼容性问题)
    • 网页文件的扩展名:.html或.htm

    HTTP的四大特征:

    1. 请求响应
    2. TCP/IP作用于应用层之上的协议

      3.无状态

        HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。

       4.无/短链接

        无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

        长链接:双方建立链接之后不断开。

    请求数据式与响应数据式

      请求数据式:

      • 请求首行(标识HTTP协议版本,当前请求方式)
        • 请求方式:
          • get请求:向服务端要数据
          • post请求:向服务端提交数据
      • 请求头(一大堆k,v键值对)
      • 请求体(并不是所有的请求方式都有get没有post有 存放的是post请求提交的敏感数据)

      响应数据式:

      • 响应首行(标识HTTP协议版本,响应状态码)
      • 响应头(一大堆k,v键值对)
      •   
      • 响应体(返回给浏览器展示给用户看的数据)

      响应状态码:

     200,OK 请求成功

    403,请求不合法

    404,请求资源不存在

    500,服务器内部错误

    HTML就是书写网页的一套标准

    # 注释:注释是代码之母
    <!--单行注释-->
    <!--
    多行注释1
    多行注释2
    多行注释3
    -->
    由于HTML代码非常的杂乱无章并且很多,所以我们习惯性的用注释来划定区域方便后续的查找
    <!--导航条开始-->
    导航条所有的html代码
    <!--导航条结束-->
    <!--左侧菜单栏开始-->
    左侧菜单栏的HTMl代码
    <!--左侧菜单栏结束-->

    HTML文档结构

    <html>
        <head></head>:head内是定义一些配置主要是给浏览器看的
      <body></body>:body内的标签 写什么浏览器就渲染什么 用户就能看到什么
    </html>

    两种打开HTML文件的方式

    • 找到文件所在的位置右键选择浏览器打开

    • 在pycharm内部,集成了自动调用浏览器的功能,直接点击即可

    标签的分类

    <h1></h1>    双标签
    
    <img/>    单标签(自闭和标签)

    head内常用标签

    <title>Title</title>  网页标题
    <style>
            h1 {
                color: greenyellow;
            }
    </style>  内部用来书写css代码
    
    <script>
            alert(123)
    </script>  内部用来书写js代码
    <script src="myjs.js"></script>  还可以引入外部js文件
    
    <link rel="stylesheet" href="mycss.css">  引入外部css文件
    
    <meta> 跳转页面

    body内常用标签

    <h1>我是h1</h1>  标题标签 1~6级标题
    <b>加粗</b>
    <i>斜体</i>
    <u>下划线</u>
    <s>删除线</s>
    <p>段落</p>
    <br>  换行
    <hr>  水平分割线

    常用标签

    1.块儿级标签(div):独占一行
        1 块儿级标签可以修改长宽 行内标签不可以 修改了也不会变化
        2 块儿级标签内部可以嵌套任意的块儿级标签和行内标签
            但是p标签虽然是块儿级标签 但是它只能嵌套行内标签 不能嵌套块儿级标签
       
    2. 行内标签(span):自身文本多大就占多大
          行内标签不能嵌套块儿级标签 可以嵌套行内标签
    
    页面布局用占位div,span,之后再修改在,调整样式,div用来提前规定所有区域之后再往区域填写内容。

    特殊符号

    &nbsp;      空格
    &gt;       大于号
    &lt;       小于号
    &amp;      &
    &yen;      ¥
    &copy;    ©
    &reg;  ®

    img标签

    # 图片标签
    <img src="" alt="">
    
    src:    
        1.图片的路径    可以是本地的也可以是网上的
         2.url(自动朝该url发送get请求获取数据)
    
    alt="派大星的好朋友"
        当图片加载不出来的时候 给图片的描述性信息
    
    title="海绵宝宝"
        当鼠标悬浮到图片上之后 自动展示的提示信息
    
    height="800px"     
    width=""
        高度和宽度当你只修改一个的时候 另外一个参数会等比例缩放
             如果你修改了两个参数 并且没有考虑比例的问题 那么图片就会失真        
    <img src="https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1750143968,1315119488&fm=26&gp=0.jpg" alt="派大星的好朋友" title="海绵宝宝" >

    a标签

    # 链接标签
    <a href=""></a>
    """
    当a标签指定的网址被点击过则会改变颜色
    """
    
    href:
        1.放url,用户点击就会跳转到该url页面
        2.放其他标签的id值 点击即可跳转到对应的标签位置
    
    target:
        默认a标签是在当前页面完成跳转  _self
            修改为新建页面跳转               _blank
    
    # a标签的锚点功能
    """eg:点击一个文本标题 页面自动跳转到标题对应的内容区域"""
    <a href="" id="d1">顶部</a>
    <h1 id="d111">hello world</h1>
    <div style="height: 1000px;background-color: red"></div>
    <a href="" id="d2">中间</a>
    <div style="height: 1000px;background-color: greenyellow"></div>
    <a href="#d1">底部</a>
    <a href="#d2">回到中间</a>
    <a href="#d111">回到中间</a>     

    标签具有的两个重要书写

    1.id值
        类似于标签的身份证号 在同一个html页面上id值不能重复
    2.class值
        该值有点类似于面向对象里面的继承 一个标签可以继承多个class值

    列表标签

    • 无序列表
    <ul>
            <li>第一项</li>
            <li>第二项</li>
            <li>第二项</li>
            <li>第二项</li>
    </ul>
    • 有序列表
    <ol >
        <li>111</li>
        <li>222</li>
        <li>333</li>
    </ol>
    • 标题列表
    <dl>
        <dt>标题1</dt>
        <dd>内容1</dd>
        <dt>标题2</dt>
        <dd>内容2</dd>
        <dt>标题3</dt>
        <dd>内容3</dd>
    </dl>

     表格

    <table>
      <thead> ------表头
      <tr>
        <th>序号</th>----加粗文本
        <th>姓名</th>
        <th>爱好</th>
      </tr>
      </thead> --------表数据
      <tbody>
      <tr>
        <td>1</td> ----- 正常文本
        <td>kk</td>
        <td>read</td>
    
    </table>

    属性:

    • border: 表格边框.
    • cellpadding: 内边距
    • cellspacing: 外边距.
    • 像素 百分比.
    • rowspan: 单元格竖跨多少行
    • colspan: 单元格横跨多少列

    表标签:能获取前端用户的数据(输入,选择)然后基于网络传输给后端

    <form action=""></form>  在该form标签内部书写的获取用户的数据都会被form标签提交到后端

    action:控制数据提交的后端路径
      1.什么都不写 默认就是朝当前页面所在的url提交数据
      2.写全路径
      3.只写路径后缀action='/index/'
        自动识别出当前服务端的ip和port拼接到前面

    input 与label 结合使用(不结合使用也没多大关系),两者都是行内标签

    <input> 元素会根据不同的 type 属性,变化为多种形态。    

    <1> 表单类型
    
    type:       text 文本输入框
    
                 password 密码输入框
    
                 radio 单选框
    
                 checkbox 多选框  
    
                 submit 提交按钮            
    
                 button 按钮(需要配合js使用.) 
    
                 file 提交文件:form表单需要加上属性    
                 enctype="multipart/form-data" 
                  enctype类似于数据提交的编码格式
                默认是urlencoded 只能够提交普通的文本数据
                formdata 就可以支持提交文件数据
                上传文件注意两点:请求方式必须是post
                
    
     <2> 表单属性
               name:    表单提交项的键.
               注意和id属性的区别:name属性是和服务器通信时使用的名称;
               而id属性是浏览器端使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的
    
               value:    表单提交项的值.对于不同的输入类型,value 属性的用法也不同:
    
                    type="button", "reset", "submit" - 定义按钮上的显示的文本
                     
                    type="text", "password", "hidden" - 定义输入字段的初始值
                     
                    type="checkbox", "radio", "image" - 定义与输入相关联的值
    
    
    checked:  radio 和 checkbox 默认被选中
    
    readonly: 只读. text 和 password
    
    disabled: 对所用input都好使.

    select 标签

     <select> 下拉选标签属性
              name:表单提交项的键.
              size:选项个数
              multiple:multiple 
                     <optgroup>为每一项加上分组
                     <option> 下拉选中的每一项 属性:
                           value:表单提交项的值.   
                           selected: selected下拉选默认被选中

    textare 多行文本框

    <form id="form1" name="form1" method="post" action="">
            <textarea cols=“宽度” rows=“高度” name=“名称”>
                       默认内容
            </textarea>
    </form>

    实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <style>
            p{
                font-size: 22px;
            }
        </style>
    </head>
        <h2>注册页面</h2>
    <body>
        <form action="http://127.0.0.1:5000/index/" method="post" enctype="multipart/form-data">
        <label for="d1">
            <hr size="10" color="red">
            <p>name:<input type="text" name="name" id="d1" size="15"></p>
            <p>pwd:<input type="password" name="pwd" size="15"></p>
            <p>sex:<input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女" checked="checked"><input type="radio" name="sex" value="其他">其他</p>
            <p>data:<input type="date" name="data" size="15"></p>
            <p>hobby:<input type="checkbox" name="hobby" value="画画" checked="checked">画画
                <input type="checkbox" name="hobby" value="弹琴">弹琴
             <input type="checkbox" name="hobby" value="打球">打球</p>
             <p>province:
                <select name="province" id="">
                    <optgroup label="上海">
                        <option value="浦东">浦东</option>
                        <option value="宝山">宝山</option>
                    </optgroup>
                    <optgroup label="北京">
                        <option value="朝阳">朝阳</option>
                        <option value="昌平">昌平</option>
                    </optgroup>
                    <optgroup label="深圳">
                        <option value="罗湖">罗湖</option>
                        <option value="宝安">宝安</option>
                    </optgroup>
                </select></p>
            <p>files:<input type="file" name="files"></p>
            <p>
            <hr>
                <input type="submit" value="注册">
                <input type="reset" value="重置">
                <input type="button" value="按钮">
            </p>
    
        </label>
    
        </form>
    
    </body>
    </html>

    后端代码

    from flask import Flask,request
    
    
    app = Flask(__name__)
    
    
    @app.route("/index/",methods=["GET","POST"])
    def index():
        print(request.form)
        print(request.files)
        filter_obj = request.files.get("files")
        filter_obj.save(filter_obj.name)
        return "ok"
    
    app.run()
  • 相关阅读:
    Eclipse中配置Tomcat碰到Server Tomcat v6.0 Server at localhost failed to start问题
    解决java中对URL编码的问题
    上白泽慧音
    小K的农场
    [USACO15JAN]草鉴定Grass Cownoisseur
    [HNOI2012]矿场搭建/Mining Your Own Business
    [POI2008]BLO-Blockade
    「JOISC 2018 Day 1」帐篷
    Sudoku
    序列
  • 原文地址:https://www.cnblogs.com/zhenghuiwen/p/12871081.html
Copyright © 2011-2022 走看看