zoukankan      html  css  js  c++  java
  • 前端 day 02 表单数据提交,css属性查找

    5.12

    昨日内容

    • web的本质:服务端----html文件----浏览器

    • http协议:统一服务端与浏览器直接交流的标准,浏览器唯一,要去兼容多个服务端

      • 四大特性

        基于请求响应

        基于tcp/ip作用于应用层之上

        无状态,保存用户状态:cookie,session

        无连接

    • 请求数据格式:请求首行(http版本,请求方式),请求头,/r/n,请求体(不是所有的方式都有请求体)

    • 响应数据格式

    • 请求方式

      get,post

      get请求的参数放在url里

    • 响应状态码:用数字来表示提示信息

      1xx,2xx,3xx,4xx,500

      这些状态码是http协议规定的,会有别的状态码

    • html:标记语言,书写网页的标准

      <!--注释-->
      <!--文档结构-->
      <html>
          <head>
              <!--不是给用户看的,是给浏览器内看的一些配置信息-->
          </head>
          <body>
              <!--给用户看的-->
          </body>
      </html>
      
    • head内常用标签

      <title>定义网页标题信息</title>
      <style>内部支持书写css</style>
      <link>引入外部css文件</link>
      <script>引入js文件</script>
      <meta>定义网页源信息
      
    • body内常用标签

      h1~h6 标题标签
      p段落标签
      u i b s
      hr,br
      
    • 常用标签

      div 用于网页初期划定范围
      span 用于装文本的
      a 链接标签
      img 图片标签
      
    • 标签的分类

      1. 单标签/双标签
      2. 块级标签/行内标签
      	块级:独占一行,可以设置长款 div
      	行内:文本多大,自身就多大 span
      	
      块级标签可以嵌套任意标签,p标签除外
      行内标签不嵌套
      
    • 特殊符号

      空格 &nbsp
      大于号> &gt
      。。。
      
    • 标签两个重要的属性

      id 标签的唯一标识,同一页面内不能重复
      class
      
    • 列表标签,页面上只要是带有规则的排序文字,都用的是无序列表

      ul,li无序列表
      ol,li有序列表
      

    今日内容

    • html结束:表格标签,表单标签
    • 框架
    • css:选择器

    表格标签

    <table border="1" cellpadding="1">
    	<thead>
    		<tr>
    			<th>user</th>
    			<th>pwd</th>
    			<th>sex</th>
    		</tr>
    	</thead>
    	<tbody>
            <tr>
                <td>aaa</td>
                <td>123</td>
                <td>male</td>
            </tr>
            <tr>
                <td>bbb</td>
                <td>123</td>
                <td>male</td>
            </tr>
        </tbody>
    </table>
    
    table的属性:border加外边框,带颜色和立体效果的,cellpadding
    数据td标签的属性:colspan=2水平方向占两行,rowspan=垂直方向占两行
    原生的表格标签很丑,但是后续一般使用框架封装好的,很好看
    

    表单数据

    能够获取前端用户数据,基于网络发送给后端发送数据

    <form action="">
    	input
    </form>
    <!--在该标签内部书写的数据都会被form接收
    action:用于控制数据提交的后端路径,给哪个服务端提交数据
    
    三种书写方式
    1. 什么都不写,默认向当前url提交数据
    2. 写全路径,https://www.baidu.com ,向百度服务器提交
    3. 只写路径后缀,action='/index' 自动识别出当前服务端的ip和端口,拼接到前面 host:port/index/
    -->
    

    input

    <!--
    获取用户的输入的标签:input
    -->
    <input type="text" id="d1">
    <!--
    通过type属性,可以变成很多种输入框
    	text:普通文本
    	password:密文展示
    	date:日历
    	submit:按钮,用来触发form表单提交数据的动作
    	button:本身没有任何功能,可以加上js绑定事件
    	reset:重置
    如果没有指定按钮的文本内容,浏览器打开之后的文本会不一样,可以在input内用value指定内容
    -->
    两种书写方式
    1. 直接将input框写在lable内
    <lable for="d1">user:<input type="text" id="d1"></lable>
    lable是行内标签,两个input会挨在一起:包在p标签里面,可以让每个输入框占一行
    
    2. 通过id链接,无需嵌套
    <lable for="d1">user:</lable>
    <input type="text" id="d1">
    
    lable是行内标签,两个input会挨在一起:包在p标签里面,可以让每个输入框占一行
    <p>
        <input type="date" id="d1">
    	<!--输入日历-->
    </p>
    
    type参数:date,password,submit,button,reset,radio
    date可以把输入框变成选择日历,password可以把输入框变成***
    

    能够触发提交form数据的按钮

    <input type="submit">
    <button>点击提交</button>
    

    radio单选

    <p>
        <input type="radio" name="gender" checked="checked">男
        <input type="radio" name="gender">女
        <input type="radio" name="gender">其他
    </p>
    <!--选择性别栏,只能选择一个,默认选中男
    默认选中:checked="checked"
    标签名和属性名一样的时候可以简写:checked
    <input type="radio" name="gender" checked>男
    -->
    

    checkbox多选

    <p>hobby:
        <input type="checkbox" checked>read
        <input type="checkbox">sleep
        <input type="checkbox">music
    </p>
    <!--
    多选框,✔的那种
    -->
    

    select下拉框

    <p>province:
        <select name="" id="">
            <option value="sh">上海</option>
            <option value="jh">金华</option>
            <option value="">珠海</option>
        </select>
    </p>
    <!--
    单选下拉框,默认选择第一个
    -->
    <!--
    在option中加selected 默认选中
    默认四单选加一个multiple属性,可以多选
    -->
    

    file选择文件

    获取本地的文件,可以用于上传,默认一个,加multiple可以上传多个
    <p>上传文件:
        <input type="file">
    </p>
    

    textarea输入大段文本

    <p>自我介绍:
        <textarea name="" id="" cols="30" rows="10"></textarea>
    </p>
    

    验证form表单提交数据

    安装flask

    pip3 install FLASK
    
    from flask import FLASK
    app = Flask(__name__)
    @app.route('/index/',methods=['GET','POST']) # 当前url既可以支持get,也可以支持post请求
    def index():
        print(request.form)
        print(request.file)
        file_obj = request.files.get('myfile')
    	return 'OK'
    app.run()
    
    # 在网页form的action里面添加127.0.0.1:5000/index/
    # form默认提交数据的方式是get,数据是直接放在url里面的,提交方式可以通过method改成post,这样那些敏感数据就不会放在url里给人看到了
    
    # 针对用户选择的标签,用户不需要输入内容,我们应该提前给这些标签添加内容:value="male" 一类
    
    # form表单提交文件要注意:
    # method必须是post,enctype必须指定form-data
    # enctype类似于数据提交的编码格式,默认是urlencoded,只能提交普通文本,改成form-data之后也能支持文件
    
    针对用户输入的内容,可以加value默认值
    

    CSS

    给html添加样式的,让html变好看

    /*注释*/
    /* 通常在写css样式的时候也会用注释来划定样式
    
    /*顶部样式
    
    /*左侧样式
    。。。
    
    /* css语法结构*/
    选择器{
    	属性1:值1;
    	属性2:值2;
    }
    

    引入css的几种方式

    1. 在head的style标签内写
    2. 新建一个css文件,在文件里面写,再在head里面的link标签中引入(最正规的方式)
    3. 行内式,在html里的标签里写

    css选择器

    找到了标签,才能给标签添加样式

    基本选择器

    1. id选择器 #id 井号+id值
    2. 类选择器 .class 点+class名
    3. 标签选择器 标签名{} 对所有的某一种标签添加属性
    4. 通用选择器 找html页面里所有的标签,基本不用
    <head>
        <style>
            /*#d1 { 找到id是d1的标签,文本颜色变成红色
                color:red;
            }*/
            .c1 {
                color:green;
            }
            * {
                color:yellow;
            }
        </style>
    </head>
    <div id="d1">div
        <p>div里的p</p>
        <span>div里的span</span>
    </div>
    <div id="d2" class="c1 c2">
        <p>div里的p</p>
        <span>div里的span</span>
    </div>
    

    组合选择器

    1. 后代选择器
    2. 儿子选择器
    3. 毗邻选择器
    4. 弟弟选择器

    在前端,将标签的嵌套,用父子关系来描述层级

    /* 后代选择器*/
    /* 给div内部的span添加属性*/
    <style>
        div span {
            color:red;
        }
    </style>
    
    儿子选择器
    div>span{
    	color:red;
    }
    
    毗邻选择器,同级别紧挨着的下面的第一个,div下面的span变颜色
    div+span {
    	color:aqua;
    }
    
    弟弟选择器:同级别下面所有的标签都是弟弟
    div~span {
    	color:black;
    }
    

    属性选择器

    1. 含有某个属性
    2. 含有某个属性并且含有某个值
    3. 含有某个值并且
    /* 第一种情况 */
    [username] {
    	background-color:red; /*将所有含有名字username的标签的背景改成red*/
    }
    
    /* 第二种情况 */
    [username='jason'] {
        color:orange; /* 所有包函属性username且值为jason的标签,变色*/
    }
    
    /* 第三种情况 */
    input[username='jason'] {
        color:orange; /*找到所有包函属性username且值为jason的 input 标签,变色*/
    }
    
  • 相关阅读:
    02
    循环语句的注意点
    unsigned/signed int/char类型表示的数值范围
    C程序设计语言(第二版)--- 习题选
    第一篇来自博客园的博客--哈哈希望大家点赞
    脆弱的GPS系统--摘抄《环球科学》
    【Python入门自学笔记专辑】——函数式编程
    c++标准库conio.h文件
    推荐几个配色和图标网站
    Ajax实现简单下拉选项
  • 原文地址:https://www.cnblogs.com/telecasterfanclub/p/12877446.html
Copyright © 2011-2022 走看看