Welcome to the K-free blog;|

k-free

园龄:5年8个月粉丝:5关注:7

📂WEB
🔖WEB
2021-04-08 13:28阅读: 89评论: 0推荐: 0

WEB前端 ---- 学习第二天(表格、表单、css等)

今日内容概要

  • 表格标签(只要是展视数据 一般都可以使用表格标签)
  • 表单标签(重要:获取前端用户数据发送给后端)
  • 后端框架基本使用(flask)
  • css层叠样式表(选择器)

表格标签

数据示例:
username	site	level
mlxg	        jug	    height
uzi	        adc	    height
ming	        assist	    height
<!--格式-->
<table border="1">
    <thead>
        <tr> # 一个tr就表示一行
            <th>username</th> <!--加粗文本-->
            <th>site</th>
            <th>level</th>
            <!--<td>username</td>--> <!--正常文本-->
        </tr>
    </thead> <!--表头(字段信息)-->
    <tbody>
        <tr>
            <td>mlxg</td>
            <td>jug</td>
            <td>height</td>
        </tr>
        <tr>
            <td>uzi</td>
            <td>adc</td>
            <td>height</td>
        </tr>
        <tr>
            <td>ming</td>
            <td>assist</td>
            <td>height</td>
        </tr>
    </tbody> <!--表单(数据信息)-->
</table>
<table border="1">:添加表格的框线
<td colspan="2">jug</td>:水平方向占多行
<td rowspan="2">jug</td>: 竖直方向占多行

# 原生的表格标签很丑 但是后续我们一般都是使用框架封装好的 很好看

表单标签

"""
能够获取前端用户数据(用户输入的、用户选择的、用户上传...)基于网络发送给后端服务器
"""
# 写一个注册功能
<form action=""></form> # 在该form标签内部书写的获取用户的数据都会被form标签提交到后端
action:控制数据提交的后端路径(给哪个服务端提交数据)
    1. action值为空:默认就是向当前页面所在的url提交数据
    2. 写全路径:https://www.baidu.com 向百度服务端提交
    3. 只写路径后缀:action="/index/" 自动识别出当前服务端的IP和Port拼接到前面(host:port/index/)


<form action="">
    <label for="d1"> # 第一种方式,直接将input框卸载label内
        username:<input type="text" id="d1">
    </label>
    <label for="d2">password:</label> # 通过id链接即可,无需嵌套
    <input type="text" id="d2"> 
</form>
Ps: input不跟label关联也没有问题

"""
label和input都是行内标签
"""
input标签:就类似于前端的变形金刚 通过type属性变形
    type属性:
        - text:普通文本
        - password:密文展示
        - date:日期
        - submit:用来触发form表达提交数据的动作
            """
            <input type="submit" value="注册">
            """
        - button:就是一个普普通通的按钮,本身没有任何功能,但它是最有用的,学完js后可以给它自定义各种功能
            """
                <input type="button" value="按钮">
            """
        - reset:重置内容
            """
            <input type="reset" value="重置">
            """
        - radio:单选框,默认选中要加checked='checked'
                 <input type="radio" name="gender" checked='checked'>男
                 当标签的属性名和属性值一样时可以简写
                 <input type="radio" name="gender" checked>"""
            <p>gender:
                <input type="radio" name="gender" checked="checked">男
                <input type="radio" name="gender">女
                <input type="radio" name="gender">其他
            </p>
            """
        - checkbox:多选
            """
            <input type="checkbox" name="hobby" checked>read
            """
        - select:默认是单选,可以将mutiple参数变多选,默认选中用selected
            """
            <p>province:
                <select name="" id="">
                    <option value="" selected>上海</option>
                    <option value="">北京</option>
                    <option value="">深圳</option>
                </select>
            </p>
            <p>前女友:
                <select name="" id="" multiple>
                    <option value="">小红</option>
                    <option value="">小花</option>
                    <option value="" selected>迪丽热x</option>
                </select>
            </p>
            """
        - file:上传文件
            """
            <p>文件:
                <input type="file" nultiple(上传多个)>
            </p>
            """
        - hidden: 隐藏输入框
            """
            <p>你看不到我:
                <input type="hidden">
            </p>
            """
            钓鱼网站
                
        - textarea:获取大段文本
            """
            <p>自我介绍:
                <textarea name="" id="" cols="30" rows="10" maxlength="20"></textarea>
            </p>
            maxlength:字数限制
            cols:文本框大小
            rows:文本框大小
            """
# 能够触发form表单提交数据的按钮有哪些
1. <input type="submit" value="注册">
2. <button>刷新</button>

# 所有获取用户输入的标签 都应该有name属性
name就类似于字典的key
用户输入的数据就类似于字典的value
# 下列注释内容是上述所有知识点总结写出的页面 可以copy自己看下效果
"""
<!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/index/" method="post" enctype="multipart/form-data">
        <p>
            <label for="d1">
                username:<input type="text" id="d1" name="username" disabled value="默认值">
            </label>
        </p>
        <p>
            <label for="d2">password:</label>
            <input type="password" id="d2" name="password">
        </p>
        <p>你看不到我:
            <input type="hidden">
        </p>
        <p>
            <label for="d3">brithday:</label>
            <input type="date" id="d3">
        </p>
        <p>gender:
            <input type="radio" name="gender" checked="checked" value="male">男
            <input type="radio" name="gender" value="women">女
            <input type="radio" name="gender" value="others">其他
        </p>
        <p>hobby:
            <input type="checkbox" name="hobby" value="read">读书
            <input type="checkbox" name="hobby" checked value="tea">喝茶
            <input type="checkbox" name="hobby" value="game">游戏
        </p>
        <p>province:
            <select name="province" id="">
                <option value="sh" selected>上海</option>
                <option value="bj">北京</option>
                <option value="sz">深圳</option>
            </select>
        </p>
        <p>文件:
            <input type="file" name="myfile">
        </p>
        <p>自我介绍:
            <textarea name="info" id="" cols="30" rows="10" maxlength="20"></textarea>
        </p>
        <p>
            <input type="submit" value="注册">
<!--当你没有指定按钮的文本内容 不同的浏览器打开之后可能渲染的文本内容不一致-->
            <input type="button" value="按钮">
            <input type="reset" value="重置">
            <button>刷新</button>
        </p>
    </form>
</body>
</html>
"""

验证form表单提交数据

# 下面的框架代码无需掌握 看下效果即可
pip3 install FLASK

# form表单默认提交数据的方式 是GET请求 数据是直接放在url后面的
    http://127.0.0.1:5000/index/?username=wenkai.fang&gender=on&hobby=on
# 你可以通过method指定提交方式指定提交方式
    <form action="http://127.0.0.1:5000/index/" method="post">

针对用户选择的标签,用户不需要输入内容,但是你需要提前给这些标签添加内容value值

 <p>gender:
    <input type="radio" name="gender" checked="checked" value="male"><input type="radio" name="gender" value="women"><input type="radio" name="gender" value="others">其他
</p>
<p>hobby:
    <input type="checkbox" name="hobby" value="read">读书
    <input type="checkbox" name="hobby" checked value="tea">喝茶
    <input type="checkbox" name="hobby" value="game">游戏
</p>
<p>province:
    <select name="province" id="">
        <option value="sh" selected>上海</option>
        <option value="bj">北京</option>
        <option value="sz">深圳</option>
    </select>
</p>

"""
form表单提交文件需要注意:
    1. method必须是post
    2. <form action="http://127.0.0.1:5000/index/" method="post" enctype="multipart/from-data"> 
    Ps: enctype类似于数据提交的编码格式,默认是urlencoded只能够提交普通的文本数据
        formdata 就可以支持提交文件数据

"""

from flask import Flask, request

app = Flask(__name__)
# 当前url既可以支持get请求也可以支持post请求 如果不写默认只能支持GET请求
@app.route('/index/',methods=['GET','POST'])
def index():
    print(request.form) # 获取form表单提交过来的非文件数据
    print(request.files) # 获取文件数据
    file_obj = request.files.get('myfile')
    print(file_obj.name)
    file_obj.save(file_obj.name)
    return 'OK'

app.run()

# 针对用户输入的标签,如果你加了value 那就是默认值
<label for="d1">
    username:<input type="text" id="d1" name="username" disabled value="默认值">
</label>

disabled: 只能看不能改 与 readonly(只读) 类似

CSS

层叠样式表:就是给HTML标签添加样式的,让它变得更加美观

# 注释
/*单行注释*/
/*
多行注释1
多行注释2
多行注释3
*/

通常我们在写css样式的时候也会用注释来划定区域(因为HTML代码很多,所以对应的css代码也会很多)
demo:
/*这是博客园首页的css样式文件*/
/*顶部导航条样式*/
...
/*左侧菜单栏样式*/
...
/*右侧菜单栏样式*/
...

# css的语法结构
选择器 {
    属性1:1;
    属性2:2;
    属性3:3
    }

# css的三种引入方式
1. style标签内部直接书写
    """
        在head块儿中
        <style>
            h1 {
                color: burlywood;
            }
        </style>
    """
2. link标签引入外部css文件(最正规的方式 解耦合)
    """
        在head块儿中
        <link rel="stylesheet" href="mycss.css">
    """
3. 行内式(比较少用)
    """
        直接在标签代码中
        <h1 style="color: green">老板好 在干嘛呢?</h1>
    """
css的学习流程
    1. 如何查找标签
        css查找标签的方式要掌握
        因为后面所有的框架封装的查找语句都是基于css来的
    2. 如何添加样式

css选择器

基本选择器

/* 写在head中 */
# 1. id选择器
        #d1 { /*找到id是d1的标签 将文本颜色变为绿黄色*/
            color: greenyellow;
        }
# 2. 类选择器
    .c1 { /*找到class值里面包含c1的标签 */
        color: red;
    }
# 3. 元素/标签选择器
    span { /*找到所有的span标签*/
        color: red;
    }
# 4. 通用选择器
     * {  /*html页面上所有的标签全部找到*/
        color: green;
    }

组合选择器

/*
    在前端 我们将标签的嵌套用亲戚关系来描述层级
    <div>div
        <p>div里面的p</p>
        <p>div p
            <span>div p span</span>
        </p>
        <span>span</span>
        <span>span</span>
    </div>
    div里面的p span都是div的后代
    p是div的儿子
    p里面的span是p的儿子 是div的孙子
    div是p的父亲
*/
/* 后代选择器 */
    div span {  /*div内部所有的span变成红色 div后面的空格表示后代的意思*/
        color: red;
    }
    /* <div>div
        <p>div里面的p</p>
        <p>div p
            <span>div p span</span> # 这个变颜色
        </p>
        <span>span</span> # 这个变颜色
        <span>span</span> # 这个变颜色
    </div> */
/* 儿子选择器 */
    div>span {
        color: red;
    }
    /* <div>div
        <p>div里面的p</p>
        <p>div p
            <span>div p span</span>
        </p>
        <span>span</span> # 这个变颜色 因为是div的儿子
        <span>span</span> # 同上
    </div> */
/* 毗邻选择器 */
    div+span { /*同级别仅挨着下面的第一个*/
        color: aqua;
    }
    /*
    <div>div
        <p>div里面的p</p>
        <p>div p
            <span>div p span</span>
        </p>
        <span>span</span>
        <span>span</span>
    </div>
    <span>span</span> 这个变颜色 因为紧挨着div
    */
/* 弟弟选择器 */
    div~span { /*同级别下面所有的span*/
        color: red;
    }
    /* <div>div
        <p>div里面的p</p>
        <p>div p
            <span>div p span</span>
        </p>
        <span>span</span> # 变色
        <span>span</span> # 变色
    </div> */

属性选择器

# 属性选择器是以[]作为标志的

1. 含有某个属性
    <style>
        [username] { /*将所有含有属性名是username的标签背景色改为红色*/
            background-color: red;
        }
    </style>
    /*
    全部带有username的都变色
    <input type="text" username>
    <input type="text" username="xiaoming">
    老师:<input type="text" username="xiaohong">
    <p username="xiaolv">小绿老师</p>
    <div username="xiaohua">小花老师</div>
    <span username="xiaohong">小红老师</span>
    */
2. 含有某个属性并且有某个值
    <style>
        [username='xiaohong'] { /*找到所有属性名是username并且属性值是xiaohong的标签*/
            background-color: red;
        }
    </style>
        /*
    <input type="text" username>
    <input type="text" username="xiaoming">
    老师:<input type="text" username="xiaohong"> 变色
    <p username="xiaolv">小绿老师</p>
    <div username="xiaohua">小花老师</div>
    <span username="xiaohong">小红老师</span> 变色
    */
3. 含有某个属性并且有某个值的某个标签
    <style>
        input[username='xiaohong'] { /*找到所有属性名是username并且属性值是xiaohong的input标签*/
            background-color: wheat;
        }
    </style>
        /*
    <input type="text" username>
    <input type="text" username="xiaoming">
    老师:<input type="text" username="xiaohong"> 变色
    <p username="xiaolv">小绿老师</p>
    <div username="xiaohua">小花老师</div>
    <span username="xiaohong">小红老师</span>
    */

本文作者:k-free

本文链接:https://www.cnblogs.com/k-free-bolg/p/14631758.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   k-free  阅读(89)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 新時代 (ウタ from ONE PIECE FILM RED) Ado
新時代 (ウタ from ONE PIECE FILM RED) - Ado
00:00 / 00:00
An audio error has occurred.

作词 : 中田ヤスタカ

作曲 : 中田ヤスタカ

新時代はこの未来だ

世界中全部 変えてしまえば

変えてしまえば

ジャマモノ やなもの なんて消して

ジャマモノ やなもの なんて消して

この世とメタモルフォーゼしようぜ

ミュージック

キミが起こす マジック

目を閉じれば未来が開いて

目を閉じれば未来が開いて

いつまでも終わりが来ないようにって

この歌を歌うよ

Do you wanna play? リアルゲーム ギリギリ

Do you wanna play? リアルゲーム ギリギリ

綱渡りみたいな旋律

認めない戻れない忘れたい

夢の中に居させて I wanna be free

見えるよ新時代が 世界の向こうへ

さあ行くよ NewWorld

新時代はこの未来だ

新時代はこの未来だ

世界中全部 変えてしまえば

変えてしまえば

果てしない音楽がもっと届くように

夢は見ないわ キミが話した

「ボクを信じて」

あれこれいらないものは消して

あれこれいらないものは消して

リアルをカラフルに越えようぜ

ミュージック

今始まる ライジング

目をつぶりみんなで逃げようよ

目をつぶりみんなで逃げようよ

今よりイイモノを見せてあげるよ

この歌を歌えば

Do you wanna play? リアルゲーム ギリギリ

Do you wanna play? リアルゲーム ギリギリ

綱渡りみたいな運命

認めない戻れない忘れたい

夢の中に居させて I wanna be free

見えるよ新時代が 世界の向こうへ

さあ行くよ NewWorld

新時代わ この未来を

新時代わ この未来を

世界中全部 変えてしまえば 変えてしまえば

果てしない音楽がもっと届くように

夢を見せるよ 夢を見せるよ

新時代だ

新時代だ

新時代だ