zoukankan      html  css  js  c++  java
  • day51 表格与表单

    一、表格标签

    <table border="1" cellpadding="5"> # border表示表格边框宽度,cellpadding表示内含文本距离边框的单位  块级标签 里面其他的是行内标签
        <thead># 表头
             <tr> # tr表示一行 th、td是一个单位
                # <!--<td></td>-- th td ,th比td加粗一点,用啥都行-->
                <th>账号</th>
                <th>密码</th>
                <th>爱好</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>黄钊</td>
                <td>123</td>
                <td>xxx</td>
            </tr>
            <tr>
                <td>李肖彤</td>
                <td>123</td>
                <td>xxx</td>
            </tr>
        </tbody>
    </table>
    

    image-20200512143304598

    二、表单标签

    功能:能够回去前端用户的数据,基于网络发送给后端

    <form action=""></form>
    
    '''
    这个form标签内供用户书写的数据会被这个表单提交给action的后端
    action:控制数据提交的后端路径(服务端)
    	1.什么都不写,默认给当前页面的url提交数据
    	2.写路径全称:https://www.baidu.com 朝百度服务端提交
    	3.直接路径后缀:/index/
    		会自动拼接到当前页面ip+端口后=》》》ip+port/index/
    method:控制请求方式
    	默认:get
    		虽然能携带数据,但是数据是在url后面的,不安全且小
    	post请求
    		携带数据放在请求体里面(表单提交必须修改post)
    enctype 控制数据的编码格式
    	默认:urlencoded 只能发送普通文本,文件只能接收文件名
    	修改为formdata可以接收文件
    '''
    

    1 form内最重要的就是input标签,它通过type变形

    • text:普通文本
    • passowrd:密文
    • date:有下拉框可选择的日期
    • submit:用来触发表单的提交数据,按钮
    • button:本身没有功能,可以后期添加,按钮
    • reset:重置内容,按钮
    • radio:单选
      • 相同name的input标签属于同一单选内容
      • 单选是必须选,不能取消只能选别的
      • 后面加checked = “checked” 表示默认值,当属性值和属性名相同时可以简写只写属性名
    • checkbox:多选
      • 不需要指定相同name
      • 可以取消可以不选,可以全选,默认值可以设置多个
    • file:获取文件
      • 后跟multiple表示可以多选,默认单选
        ps:在文本框后加placeholder可以给文本框添加默认值

    2 select标签

    默认单选,后加multiple变成多选,selected表示默认值

    <select name="" id="" multiple>
        <option value="" selected>a</option>
        <option value="">b</option>
        <option value="">c</option>
    </select>
    

    3 textarea标签

    大段文本框

    <textarea name="" id="" cols="30" rows="10"></textarea>
    # cols 宽度 rows 长度 
    

    4 重点

    # 能触发form表单数据提交的按钮
    	1、<input type="submit" value="注册">
    	2、<button>点我</button>
    # 用户输入的数据在后端获取到的是一个个kv键值对
    # 所以在前端书写的时候每个用户书写的标签都要加上name 等于key  用户的数据 等于value
    

    三、通过flask实现表单提交

    服务端代码

    from flask import Flask,request
    
    app = Flask(__name__)
    
    
    @app.route('/hz/',methods=['GET','POST'])
    def hz():
        print(request.form)
        print(request.files)
        file_obj = request.files.get('mytupian.pug')
        file_obj.save(file_obj.name)
        return 'hznb'
    
    
    app.run()
    

    页面代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <h1>注册页面</h1>
    <form action="http://127.0.0.1:5000/hz/" method="post" enctype="multipart/form-data">
            <label for="d1">
                姓名:<input type="text" id="d1" name = "姓名">
            </label>
            <label for="d2">密码</label>
            <input type="password" id="d2" name="密码">
    
    <!--单选 指定相同name才是一类单选-->
            <p>
                <input type="radio" name="sex" checked value="男">男
                <input type="radio" name="sex" value="女">女
            </p>
    <!--多选 不用指定name -->
            <p>
                <input type="checkbox">a
                <input type="checkbox">b
                <input type="checkbox">c
            </p>
            <p>
    <!--            multiple表示可以多选-->
                <input type="file" multiple name = 'file'>
                <input type="file" >
            </p>
            <p>
                <select name="" id="" multiple name="select">
                    <option value="" selected value="a">a</option>
                    <option value="" value="b">b</option>
                    <option value="" value="c">c</option>
                </select>
            </p>
            <p>
                <textarea name="" id="" cols="30" rows="5"></textarea>
            </p>
            <p>
                <input type="date">
            </p>
            <p>
                <input type="submit">
                <input type="button" value="button">
                <input type="reset">
                <button></button>
            </p>
        </form>
    </body>
    </html>
    

    四、css

    1 css的三中引入方式

    • 直接在head里通过style写

      • <style>
        	选择器{
        		属性:值
        	}
        </style>
        
    • 通过link标签引入css文件(最正规)

      • <link rel="stylesheet" href="mycss.css">
        
    • 行内式(一般不用)

      • <h1 style="color: green">老板好 要上课吗?</h1>
        

    2 css选择器

    • id选择器:对指定id的标签修改
      • id{ }

    • 类选择器:对指定类的标签修改
      • .class{ }
    • 元素/标签选择器:对指定标签修改
      • span{ }
    • 通用(全局)选择器:全局修改
      • *{}

    3 组合选择器

    • 后代选择器
      • div span{ } div下所有的span标签
    • 儿子选择器
      • div>span{ } div下直系span标签(单层嵌套)
    • 毗邻选择器
      • div+span{ } div同级别的第一个span
    • 弟弟选择器
      • div~span{ } div同级别的所有span

    4 属性选择器

    • 含有某个属性
      • [username] { 对所有有username属性的标签修改}
    • 含有某个属性且有对应的值
      • [username = 'hz']{ 对所有username=‘hz’的标签修改}
    • 含有某个属性且有对应的值的特定标签
      • input[username = 'hz'] { 对所有username=‘hz’的input标签修改}
  • 相关阅读:
    PAT 甲级 1126 Eulerian Path (25 分)
    PAT 甲级 1126 Eulerian Path (25 分)
    PAT 甲级 1125 Chain the Ropes (25 分)
    PAT 甲级 1125 Chain the Ropes (25 分)
    PAT 甲级 1124 Raffle for Weibo Followers (20 分)
    PAT 甲级 1124 Raffle for Weibo Followers (20 分)
    PAT 甲级 1131 Subway Map (30 分)
    PAT 甲级 1131 Subway Map (30 分)
    AcWing 906. 区间分组 区间贪心
    AcWing 907. 区间覆盖 区间贪心
  • 原文地址:https://www.cnblogs.com/hz2lxt/p/12877580.html
Copyright © 2011-2022 走看看