HTML

HTML

​ 超文本标记语言

在学习HTML的时候, 只需要记住每个标签标示的意思.

浏览器所能识别的语言

  • HTML/XML
  • CSS
  • JS

扩展: XML 也可以书写前端, 主要用于odoo框架中, 书写企业内部管理软件(ERP)

HTML 注释

注释是代码之母

  • 单行注释:

  • 多行注释: <!--

    ​ 多行注释1

    ​ 多行注释2

    ​ -->

补充: 由于HTML 页面结构比较复杂, 内容较多, 不方便与后期的维护修改 通常在写页面的时候, 习惯用代码注释这种人为的方式, 划分代码区域, 便于管理

<!--顶部导航条样式开始-->

<!--顶部导航条样式结束-->
<!--左侧菜单栏样式开始-->

<!--左侧菜单栏样式结束-->

HTML文档结构

<html>
    <head></head>:  用来给浏览器或者蜘蛛爬虫, 浏览器做识别操作
    <body></body>: 用来给浏览器渲染, 展示给用户看的
    
</html>


标签分类

标签应该具备的属性

  • id属性: 类似于身份证号 用来表示标签在当前html页面中的唯一
  • class属性: 类似于面向对象的继承, 直接引用别的类的样式
1. 双闭合标签  <a>内容</a>
2. 自闭和标签 <br> <hr>

head 内常用标签

title: 定义网页标题
style: 内部支持css代码
link: 引入外部css文件
script:
	1. 内部可以直接编写js代码
	2. 可以通过src属性引用外部js代码
meta:
	name 属性 (用于做SEO)
		keywords  关键字
		description  展示页面信息

什么是URL

URL: 统一资源定位符

body内常用标签

基本标签

h1~h6: 标题标签
s: 删除线
b: 加粗
u: 下划线
i: 斜体
p: 段落标签, 独占一行
br: 换行
hr:分割线

特殊符号

&nbsp; 空格
&gt;   大于号
&lt;   小于号
&amp;  &符号
&yen;  人民币符号
&copy; 版权标示
&reg;  注册商标

常用标签

div  块级标签
span 行内标签
以上标签本身没有任何意义,  div 用来做布局用
  • img 标签
img 标签  图片标签
	src属性 
		1. 可以写一个网络图片的链接
		2. 可以写本地的图片地址
		3. url(点击会自动朝该url发送get请求数据)
	alt属性
		当图片加载不出来是, 默认展示的提示信息

	title 属性
		当鼠标悬停在图片上的时候, 展示的提示信息
	
	width,height 宽和高
		只修改一个, 图片会同比例缩放
		如果两个都修改, 非同比例会失真
代码示例:
<img src="https://i.meizitu.net/thumbs/2019/12/216914_23b13_236.jpg" alt="就是这张图片" title="好漂亮的妹妹">



  • a标签
a 链接标签
	href 属性
		1.  放一个url  点击会跳转到该url
	

	taget
		控制是否在当前页面跳转
		1. 默认是 _self 在当前页面跳转
		2. _blank 新建页面跳转
	


锚点功能
	href 不单单可以写url , 也可以写另外一个a标签的ID值, 点击就会跳转到该id所对应的a标签所在的位置  书写格式
href="#id"



  • 列表标签
列表标签
	无序列表(较多使用)
		ul : 序列表标签
			li :标签内元素
			只要页面上出现比较有规则排序的文本, 基本上就是用无需列表来实现的
	
	有序列表
		ol : 无序列表标签
			li : 标签内元素
	
标题列表
	dl : 标题列表标签
		dt 标题
		dd 内容

	

  • 表格标签
表格标签(******)
	展示网站数据的时候, 一般情况下可以使用表格表标签

<table> 表格标签
    <thead>
        <tr>
            <th></th> 表头(加粗显示)
        </tr>  表示一行数据
        
    </thead> # 表格的表头
    <tbody>
        <tr>  #  表示一行数据
            <td></td> 包裹真是数据
        </tr>
    </tbody> # 表格的数据体
</table>

<table></table>  表格标签
<thead></thead>  表格表头标签
<tbody></tbody>  表格体标签

  • 表单标签
表单标签
	form标签
作用:  用来获取用户输入(输入, 选择, 上传文件)  并且将数据打包发送给后端
		action 属性, 
			用来控制数据提交的路径, 将数据提交给谁
			
			三种写法:
				1: 不写, 默认是获取当前html页面的地址
				2:  全路径(https://www.baidu.com)
				3:  只写路径后缀(/index/)  默认拼接第一种的地址.
		method 属性:
			用来控制提交数据的方式,  默认是 get 方式

		enctype 属性:    
			用来控制提交的数据, 默认是application/x-www-form-urlencoded  (只提交表单数据)
			要想提交文件数据需要设置为 multipart/form-data


  • input 标签

    用于在form表单内用于提供给用户提交的输入框

    input 类似于前端的变形金刚. 多种方式接收用户输入

    • type 属性

      • text 普通文本

        <p>
            <label for="d1">
                用户名:<input type="text" id="d1" name="username">
            </label>
        </p>
        
        
      • password 秘文

        <p>
            <label for="d1">
                密码:<input type="password" id="d2" name="password">
            </label>
        </p>
        
        
        
      • date 日期

        <p>
            <label for="d1">
                注册日期:<input type="date">
            </label>
        </p>
        
        
      • radio 多选一: 用相同的name 进行约束

         <p>性别:
                    男<input type="radio" name="gender" checked>
                    女<input type="radio" name="gender">
        </p>
        
        
      • checkbox 多选多

        默认选中 checked="checked"
        
        当标签属性名和属性值相同的时候, 可以只写属性名       
        <p>爱好:
                    足球<input type="checkbox" name="hobby"  checked value="2">
                    篮球<input type="checkbox" name="hobby" value="1">
                    肉球<input type="checkbox" name="hobby" value="3">
        </p>
        #  需要提交的数据要记录在 value中,   获取列表 需要用方法  request.POST.getlist("hobby")
        
        
        
      • reset 重置 清空已输入的所有数据

                <p>
                    <input type="reset" value="清空所有的数据">
                </p>
        
        
      • button 普通按钮

        <p> <input type="button" value="提交"></p>
         只是一个按钮, 这样写, 没有任何意义
        
        
      • submit 触发form表单的提交动作

        <p><input type="submit" value="注册"></p>
        form表单中的提交  value设置按钮的名字
        
        
      • file 获取文件

        <p>
            <input type="file" name="file">
        </p>
        
        
    • name 属性, 标明这个标签的名称, 传送数据时是以 key=value json格式字典进行传输

  • select 标签

    用于 form 表单内 , 下拉框

    一个选项就是一个 option 标签

    默认是单选的, 可在 select 标签内加上 multiple 属性, 改成多选

    • 示例

      <select name="" id="" multiple>
          <option value="">选项1</option>
          <option value="">选项2</option>
          <option value="">选项3</option>
          <option value="">选项4</option>
      </select>
      
      
    • 默认选中. 在option 标签内, 设置 selected属性

  • textarea 标签, 获取大段文本

  • label 标签, 通常是配合 input 一起使用的, for 属性用来填写对应的input标签的id值, 点击文本可以获取对应的输入框焦点

  • 能够触发form表单提交数据的按钮

    ​ input 使用type="submit" 进行触发

    <button>可触发以</button>
    
    

django 上传文件功能的实现

#  前端页面设计
 {% csrf_token %}
    <form action="" method="post" enctype='multipart/form-data' enctype="multipart/form-data">
	        <p><input type="file" name="file"></p>
    </form>

#  django开启需要 使用{% csrf_token %}  使用token 进行数据验证(具体不懂)  在测试时 
#  可以先在django的setting 配置文件中先注销 


# setting 文件注销后  可以在前端不需要使用 {% csrf_token %}
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

#  视图 view 设置:
#  使用  {% csrf_token %} 必须要使用csrf_exempt 装饰器
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def register(request):
    if request.method == 'POST':
        obj = request.FILES.get("file")  # 使用FILES 方法获取数据
        with open(f"1243.md", "wb")as f:
            for chunk in obj.chunks():   # 使用 obj.chunks 获取句柄. 
                f.write(chunk)
    return render(request, "register.html", locals())




posted @ 2019-12-25 20:46  七里塘  阅读(147)  评论(0编辑  收藏  举报