前端之表格标签,from表单,CSS介绍等

表格标签

<table>
	<thead>
		<tr>
			<td></td>
			<th></th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td></td>
			<th></th>
		</tr>
	</tbody>
</table>

<table border = '1'> 加外边距
<td colspan = '2'> 横向占格数
<td rowspan = '2'> 竖向占格数

    <table border="1">
        <thead>
        <tr>
            <th>username</th>
            <th>password</th>
            <th>gender</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td rowspan="2">egon</td>
            <td>123</td>
            <td>male</td>
        </tr>
        <tr>
            <td colspan="3">alex</td>
            <td>123</td>
            <td>male</td>
        </tr>
        </tbody>
    </table>

表单标签

表单标签能够获得用户输入的数据并且传入后端进行处理

语法格式:
	<form action=''></form>
	<!--在form表单内部的数据才会被提交到后端-->
action:控制数据提交的后端路径(给那个服务器提交数据)
	1.不填:默认为当前的路径
	2.写全路径:https://editor.csdn.net/md?articleId=112546325
	3.只写路径后缀:'/student/',会自动识别服务器的IP和端口并且发送数据
一般来说input(单标签)标签应该与label标签(双标签)有两种关系:
1.在label内部
<label for='d1'><input type='text' id='t1'></label>
通过for连接id的方式能够实现点文字就能点中输入框
2.通过ID和label关联
<label for='d1'>username:</label>
<input type='text' id='d1'>

ps:label和input都是行级标签


input标签:功能实现与用户的交互
input中type属性的参数:
	1.text 普通文本
	2.password 密码形式
	3.date 日期形式
	4.submit 用来触发form表单的提交功能
	5.button:一张白纸,普通的按钮功能,我们可以给他赋予任意的功能
	6.reset:即刷新页面,重置输入的数据
	7.radio:单选(需要给name值来标识唯一的选项)
	8.checkbox:多选
	9.file:获取文件 也可以一次性获取多个
	10.hidden:隐藏当前的input框,钓鱼网站
	11.placeholder:在input框可以输入提示信息
	
select标签 默认是单选 可以加multiple参数边多选
格式:
<select name='' id='' multiple>
	<option value='' selected='selected'>内容</option>
	<option value='' selected='selected'>内容</option>
	<option value='' selected='selected'>内容</option>
	<option value='' selected='selected'>内容</option>
</select>

textarea标签 获取大段文本标签
	<textarea name='' id='' cols='30' ros='10'></textarea>
参数:
	maxlength:输入的最大长度
	cos:宽度
	ros:长度

ps:激活form表单提交数据的两种方式
1.submit
2.button

# 所有获取用户数据的标签都应该name属性
否则没有键名,后端无法进行接收

# 针对用户的输入的标签,如果加了value 那就是默认值
disable 禁用
onlyread 只读

# 对于点击事件来说,必须在标签属性栏内部指定value,这样传入后台的才是value值

# form标签提交文件注意:
	1.传输类型即method必须是post
	2.enctype='multipart/form-data'
		enctype是提交的编码
		默认是urltype不能提交文件
		form-data可以提交文件

代码实现:
	    <form action="http://127.0.0.1:5000/index/" method="post" enctype="multipart/form-data">
      <div>
        <label for="l1">username: <input type="text" name='username' id="l1" ></label>
      </div>
        <div>
            <label for="l2">password: <input type="password" name="password" id="l2" name="password"></label>
        </div>
        <div>
            <label for="">birthday:<input type="date" name="brithdat"></label>
        </div>         
        <p>
            <input type="radio" name="gender" checked="checked"><input type="radio" name="gender"></p>
        <p>
            <input type="checkbox" name="hobbies" value="football" checked>足球
            <input type="checkbox" name="hobbies" value="basketball">篮球
            <input type="checkbox" name="hobbies" value="飞机">乒乓球
        </p>
        <p><input type='file' name="file"></p>
        <p><input type="hidden"></p>
        <div>
            <label for=""><input type="submit"  value="注册"></label>
            <label for=""><input type="button" value="点我没用"></label>
            <label for=""><input type="reset" value="重置"></label>
        </div>
        <p>hobbyy:
            <select name="hobbyy" id="">
                <option value="sb" selected>上海</option>
                <option value="sc">北京</option>
                <option value="se">南京</option>
                <option value="sd">天津</option>
                <option value="sg">东京</option>
                <option value="sf">西京</option>
            </select>
        </p>
        <p>请输入:<textarea maxlength="30" name="user_input" id="t1" cols="30" rows="10"></textarea></p>

    </form>
FLASK框架部分:
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('file')
    file_obj.save(file_obj.name)
    return 'OK'

app.run()

CSS

层叠样式表:是用来美化界面的

/*单行注释*/
/*
多行注释
*/

注释的作用:
	与HTML作用一样:划定代码的范围
	/*顶部导航栏*/
	/*中部作用域*/

基本语法:
	选择器 {
		属性1:值1;
		属性2:值2;
		属性3:值3;
		属性4:值4;
		属性5:值5;
		属性6:值6;	
		}

选择器使用的三个方法:
	1、在<style></style>内部直接书写
	2、在<link src=''>直接导入
	3、行内式
		在每一个标签直接使用如
		<h1 style='color:green'>superman</h1>

CSS选择器

基本选择器

id选择器
# #h1 找到id号为h1的标签{ 
属性:属性值
	}
类选择器(一个标签可以有多个类)
# .c1 找到class内部有c1的标签 {
...
} 
元素/标签选择器
# 标签名 找到所有标签名为标签名的标签{
} 
通用选择器
# * 所有的标签全部

组合选择器

在前端通过标签的嵌套来表示亲戚关系
例如
	<div>
		<p>
			<b>
			</b>
		</p>
	</div>
其中div是P的父亲,b的爷爷
1.后代选择器
拿到一个标签中的所有的标签名为标签名的标签并且操作
    <style> 标签 里面的标签 {color: aqua}
    </style>
    <style> div p {color: aqua}
    </style>
2.儿子选择器
只拿到标签中儿子级别的标签
	<style>标签>儿子标签{}
	</style>
	    <style>
        div>p {color: aqua}
    </style>
3.毗邻选择器
必须是同级别的挨着的下面的第一个如果不是后面的不会变
    <style>
        标签+标签 {}
    </style>
        <style>
        div+p {color: aqua}
    </style>
4.弟弟选择器
是同级别的下面的所有的该标签
    <style>
        标签~标签 {}
    </style>
        <style>
        div~p {color: aqua}
    </style>

属性选择器

1.内部有该属性的
    <style>
        [属性名] {color: gold}
    </style>
    <style>
        [id] {color: gold}
    </style>
2.内部有该属性且有该值得
    <style>
        [属性名='值'] {color: gold}
    </style>
    <style>
        [id] {color: gold}
    </style>
3.内部有该属性且有该值得且有标签号的
    <style>
       标签[属性=属性值] {color: gold}
    </style>
     <style>
        h1[id='h'] {color: gold}
    </style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【为什么学爬虫?】        1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!        2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是:网络请求:模拟浏览器的行为从网上抓取数据。数据解析:将请求下来的数据进行过滤,提取我们想要的数据。数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是:爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求!【课程服务】 专属付费社群+定期答疑

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值