• day51——表格、表单标签、初始flask框架、css选择器


    今日内容

    1. 表格标签
    2. 表单标签
    3. 初始flask框架
    4. css(Cascading style sheets)层叠样式表(选择器)

    一、表格标签

    只要是需要展示数据一般都可以使用表格标签

    tom	    123	  捉老鼠
    jerry	123	  戏弄猫
    jack	123	  摸眼r闪
    
     <table border="10">
            <thead>		表头
                <tr>	一个tr表示一行
                    <th>username</th>	加粗文本,一般将标题文字设为加粗字体
                    <td>password</td>	正常字体
                    <th>hobby</th>
                </tr>
            </thead>
         
         
                <tbody>		表单(表的数据信息)
                <tr>
    <!--                <td rowspan="2">tom</td>-->
    <!--                <td colspan="2"></td>-->
                    <td>tom</td>
                    <td>123</td>
                    <td>捉老鼠</td>
                </tr>
            </tbody>
    
    
    
         
     说明:
         	<table border="10">   加外边宽
            <td colspan="2"></td>	水平方向占两行
            <td rowspan="2">tom</td>	竖直方向占两行
    

    原生的表格标签不是很好看,但是后面我们会用框架进行封装,那时就很好看了。

    表单便签

    能够获取前端用户的数据(用户的输入、用户的选择、用户的上传),通过网络传输将其发送给后端服务器

    我们用一个注册功能来进行表单标签的学习

    <form action=""></form>   在该form标签内书写的用户的数据都会被form标签提交到后端
    
    action:控制数据提交的后端路径(也就是说具体往哪个服务器提交数据),有三种情况
    	1 什么都不写,form标签会默认的朝当前窗口所在的url提交数据
    	2 写全路径(www.baidu.com),form标签会朝这个路径的服务端提交数据(朝百度服务端提交数据)
    	3 只写后缀action='index',form标签会自动的将当前服务端的ip和port拼接到前面组成路径
    		host:port/index/
    
    
    input标签:
    
    第一种:input标签写在label标签内,嵌套
    <label for="d1">username:
    	<input type="text" id="d1">
    </label>
    
    第二种:通过id链接即可无需嵌套
    <label> for="d2"</label>
    <input type="text" id="d2">
    
    ps:1 input 不跟label关联也是没有问题的
       2 lable 和input都是行内标签
    
    input标签通过type值的变化,可以实现各种属性
    type="text"		      文本
    	 "password"		  密文(匿文)
    	 "date"			 日期(年月日)
    	 "submit"		 用来触发form提交数据的动作
    	 "button"		 一个非常有用的按钮,本身没有任何功能,但是可以给他自定义各种功能
    	 "reset"		 重置内容,注意不提交数据
    	 "redio"		 单选,默认选中需加checked="checked"或简写成checked如:
    					    <input type="radio" name="gender" checked="checked">男
    					    <input type="radio" name="gender" checked>男    简写
    	 "checkbox"		 多选,如:
    					    <input type="checkbox" name="hobby" value="basketball">篮球
                              <input type="checkbox" checked name="hobby" value="football">足球
    	 "file"			 获取文件,也可以一次获取多个,如:
    					    <input type="file" multiple>
    	 "hidden"		 隐藏当前input框,钓鱼网址就是运用了这个
    ps:标签的的属性名和属性值相同的时候,可以简写,直接放标签名即可
    
    
    select标签:
    默认为单选,可以加multiple参数变为多选,默认选中加selected(简写)
    <select name="" id="" mutiple>
        <option value="">神仙姐姐</option>
        <option value="">高圆圆</option>
        <option value="">陈都灵</option>
    </select>
    
    
    textarea标签:
    获取用户输入的大段文字
    <textarea name="" id="" cols="30" rows="10"></textarea>
    ps: cols指定文本框的长度,指定文本框的高度
    
    
    能够触发form表单 提交数据的按钮有哪些,重点记忆
    1	<input type="submit" value='提交数据'>
    2	<button>提交数据</button>
    
    能够获取用户输入的数据的标签,都应该有name属性,那么类于字典的key,用户的数据类似于字段的value值
    <p>gender:
              <input type="radio" name="gender">男
              <input type="radio" name="gender">女
    </p>
    

    初始flask框架

    验证表单标签是否能提交数据

    # 接下来的框架代码无需掌握  看一下效果即可
    pip3 install FLASK
    
    form表单默认提交数据的方式 是get请求  数据是直接放在url后面的
    	http://127.0.0.1:5000/index/?username=sdadasdsda&gender=on
    你可以通过method指定提交方式
    	<form action="http://127.0.0.1:5000/index/" method="post">
      
    针对用户选择的标签 用户不需要输入内容 但是你需要提前给这些标签添加内容value值
    <p>gender:
                <input type="radio" name="gender" value="male">男
                <input type="radio" name="gender" checked value="female">女
                <input type="radio" name="gender" value="others">其他
    </p>
    <p>hobby:
                <input type="checkbox" name="hobby" value="basketball">篮球
                <input type="checkbox" checked name="hobby" value="football">足球
                <input type="checkbox" checked name="hobby" value="doublecolorball">双色球
    </p>
    <p>province:
                <select name="province" id="">
                    <option value="sh">上海</option>
                    <option value="bj" selected>北京</option>
                    <option value="sz">深圳</option>
                </select>
    </p>
    
    
    
    """
    form表单提交文件需要注意
    	1.method必须是post
    	2.enctype="multipart/form-data"
    	  enctype类似于数据提交的编码格式
    	  默认是urlencoded 只能够提交普通的文本数据
    	  ormdata 就可以支持提交文件数据
    """
    <form action="http://127.0.0.1:5000/index/" method="post" enctype="multipart/form-data">
    
    
    """下面的代码无需掌握 你只需要关心form表单即可"""
    from flask import Flask, request
    
    
    app = Flask(__name__)
    
    
    # 当前url既可以支持get请求也可以支持post请求  如果不写默认只能支持get请求
    @app.route('/index/',methods=['GET','POST'])
    def index():
        print(request.form)  # 获取form表单提交过来的非文件数据
        # ImmutableMultiDict([('username', 'jason'), ('password', '123132131231233'), ('gender', 'on')])
        print(request.files)  # 获取文件数据
        file_obj = request.files.get('myfile.png')
        file_obj.save(file_obj.name)
        return 'OK'
    
    app.run()
    
    
    # 针对用户输入的标签。如果你加了value 那就是默认值
    <label for="d1">username:<input type="text" id="d1" name="username" value="默认值"></label>
    disable 禁用
    readonly只读
    

    css选择器

    css导入的三种方式

    <!--1 导入外部css文件-->
    <link rel="stylesheet" href="mycss.css">
    
    <!--2 在style便签下书写-->
    <style>
        h1{
            color:greenyellow;
        }
    </style>
    
    <!--3 在body标签内书写-->
    <body>
        <h1 style="color:green">
        </h1>
    </body>
    

    基本选择器

    • id选择器
    <style>
            /*id选择器*/
            #d1{
                /*将id为d1的标签文本颜色变成黄绿色*/
                color: greenyellow;
            }</style>
    
    • 类选择器
    <style>
            /*类选择器*/
            *.c1{
                /*找到class里面包含c1的标签,将器变成红色*/
                color:red;
            }
    </style>
    
    • 通用选择
    <style>
    	    /*通用选择器*/
            /*将html页面上所有的便签都找到,将其变为绿色*/
            * {
                color: green;
            }
    </style>
    

    组合选择器

    在前端中我我们将标签的嵌套用亲戚关系来表诉层级,这样更容易立即,见名知意嘛!

    • 弟弟选择器

      (用链接两个标签,左边的便签与右边标签处于同一级别,找到左边标签所有右边的标签进行样式配置)

    <style>
            /*弟弟选择器*/
            div~span{
                /*找到同div同级别下所有的span*/
                color:green;
            }
        </style>
    </head>
    
    • 毗邻选择器

      (用+链接两个标签,左边的便签与右边标签处于同一级别,找到+左边标签离它最近的一个同级别标签进行样式配置,住的最近的一个弟弟)

    <style>
            /*毗邻选择器*/
            div+span{
            	/*找到div同级别下最近的一个span*/
                color:red;
            }
    </style>
    
    • 儿子选择器

      (用>连接两个标签,>右边标签为左边标签内嵌套的第一层标签,可以是一个可以是多个)

    <style>
    	    /*儿子选择器*/
            div>span {
                color: yellow;
            }
    </style>
    
    • 后代选择器

      (不放符号用空格连接两个标签,找到空格左边标签内嵌套的所有标签进行样式配置,后代嘛!子子孙孙都算)

    <style>
    	    /*后代选择器*/
            div span {
                color: red;
            }
    </style>
    

    属性选择器

    """
    1 含有某个属性
    2 含有某个属性并且有某个值
    3 含有某个属性并且有某个值的某个标签
    """
    # 属性选择器是以[]作为标志的
    
    /*[username] {  !*将所有含有属性名是username的标签背景色改为红色*!*/
            /*    background-color: red;*/
            /*}*/
    
            /*[username='jason'] {  !*找到所有属性名是username并且属性值是jason的标签*!*/
            /*    background-color: orange;*/
            /*}*/
    
            /*input[username='jason'] {  !*找到所有属性名是username并且属性值是jason的input标签*!*/
            /*    background-color: wheat;*/
            /*}*/
    
  • 相关阅读:
    struts总结
    struts的MVC详细实现
    struts的由来
    Hibernate的搭建及使用
    Hibernate简介
    泛型
    eclipse手动添加源码
    beanUtils操作bean的属性
    ref:JAVA之Forward和Redirect的区别
    ref:下一个项目为什么要用 SLF4J
  • 原文地址:https://www.cnblogs.com/zhangtieshan/p/12879908.html
Copyright © 2020-2023  润新知