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 1007 Maximum Subsequence Sum 最大连续子序列和
    数据库系统原理课程设计——图书借阅管理系统
    计算机组成原理——数据的表示与运用
    win7系统下安装Ubuntu18.04组成双系统
    C++中set用法详解
    C++ getline函数用法详解
    数据库——关系演算
    计算机组成原理——计算机系统概述考研题
    PAT 1002 A+B for Polynomials(map模拟)
    PAT 1001 A+B Format
  • 原文地址:https://www.cnblogs.com/hz2lxt/p/12877580.html
Copyright © 2011-2022 走看看