python_day16 Jquery、Bootstrap、Django

Jquery、

Bootstrap、

Django

上周Jquery

选择器
     基本选择器:    id  $("#id") class $(".class")  标签选择器  $("标签名称")
     组合选择器:    后代选择器 $(".outer p")  子代选择器 $(".outer>p")     多元素选择器:$(".outer,#d1")
	 属性选择器:    $("[属性名='值'][.....]")
	 表单选择器:    针对表单元素   $("[type='text']")   =============   $(":text")
	 
	 筛选器:$("ul li").eq()   $("ul li").first()   $("ul li").last()   $("").hasclass("c1")

	 导航查找方法 :
	             向下查找兄弟标签:   
					 $().next()
					 $().nextAll()
					 $().nextUntil(".c1")
	             向上查找兄弟标签:
					  $().prev()
					  $().prevAll()
					  $().prevUntil(".c1")
				可以查找所有兄弟标签: $().siblings()
				
				查找子标签: 子代查找:$().children("")   后代查找: $().find("")
				 
				查找父级标签:$().parent()   $().parentUntil("")
				 
属性操作
     文本操作:  取值:$().html()       $().text()  赋值:$().html(“”)       $().text(“”)
	                   $().val()
     
	 属性操作:   DOM:    ele.属性名=值     ele.setAttribute("属性名","值")
	 
	              juqery:取值: $().attr("属性名")    赋值:$().attr("属性名","值")
				                
	                             $().prop("checxked")    $().prop("selected")
								 
     class属性操作: $().addClass("c1")    $().removeClass("c1")
	 左侧菜单: jquery支持链式操作   $(this).html("hello").next().css("color","red")

    节点操作:
	
	       创建节点 : $("<标签名>")
		   
		   添加节点:
		          父节点.append(子节点)
				  子节点.appendto(父节点)
    css操作:
属性操作-attr方法.html
    <!--引入jquery文件-->
    <script src="jquery-3.2.1.js"></script>
<p>PPP</p>
<script>
    $("p").attr("class","c1");    //赋值
    $("p").attr("id","d1");
// F12 检查 控制台    
    console.log($("p").attr("class"));  //取值
    console.log($("p").attr("id"));
</script>

事件绑定.html
<ul>
    <li>111</li>
    <li>222</li>
    <li>333</li>
</ul>
<button>add</button>
<script>
    //新添加内容没有点击显示内容功能
//    $("ul li").click(function () {
//        alert($(this).html())
//    });
//jquery事件绑定方式1:jquery对象.事件(function () {})
//$(this) jquery对象 代指当前点击的标签
    $("button").click(function () {
        var $li = $("<li>");    //新建标签
        $li.html("444");        //标签赋值
        $("ul").append($li);    //添加标签append
    });
    //事件绑定on方法
//  下面两种写法一致
//    $("botton").on("click","li",function () {
//        alert(123);
//    });
//    $("botton").click(function () {
//        alert(123);
//    });
//事件委派
    $("ul").on("click","li",function () {
        alert(123)
    })
</script>
<script>
//文档加载完成后才会执行上面的代码
$(document).ready(function () {
$("ul li").click(function () {
alert($(this).html())
})
})
</script>
$(function () {
$("botton").on("click","li",function () {
alert(123);
});
$("botton").click(function () {
alert(123);
});
$("ul").on("click","li",function () {
alert(123)
})
//each循环
<p>111</p>
<p>222</p>
<p>333</p>
<script>
$("p").css("color","red");
</script>
// $,each的遍历循环方式1: $.each(obj,function)====================================
    var arr=[11,2,34];
    $.each(arr,function (i) {
        console.log(i);
    })
    $.each(arr,function (i,v) {
        console.log(i,v);
    })
var obj={"name":"yuan","age":"18"}
$.each(obj,function (i,v) {
    console.log(i,v)
})
    // $,each的遍历循环方式2:$("").each(function)
    $("p").each(function (i,v) {
//        console.log($(this).html())
//        console.log(i,v);
        if(i == 1){
            $(this).css("color","red");
        }
    })

表格操作.html----全选、反选、取消
<button class="selectAll">全选</button>
<button class="cancel">取消</button>
<button class="reverse">反选</button>
<hr>
<table border="1">
    <tr>
        <td><input type="checkbox"></td>
        <td>张三</td>
        <td>12</td>
        <td>s6</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>张三</td>
        <td>12</td>
         <td>s6</td>
    </tr>
    <tr>
        <td><input type="checkbox"></td>
        <td>张三</td>
        <td>12</td>
         <td>s6</td>
    </tr>
       <tr>
        <td><input type="checkbox"></td>
        <td>张三</td>
        <td>12</td>
         <td>s6</td>
    </tr>
</table>
<script>
    $(".selectAll").click(function () {
        $(":checkbox").attr("checked","checked");
    })
    $(".cancel").click(function () {
        $(":checkbox").removeAttr("checked");
    })
    $(".reverse").click(function () {
        $(":checkbox").each(function () {
//用此方法可能反选有问题
            if ($(this).attr("checked") == "checked") {
                $(this).removeAttr("checked")
            }
            else {
                $(this).attr("checked","checked")
            }
        });
    })
</script>
//方法2:prop更适合于checked/selected等勾选 prop与attr用法一样    
<script>
    $(".selectAll").click(function () {
        $(":checkbox").prop("checked",true);
    })
    $(".cancel").click(function () {
        $(":checkbox").prop("checked",false);
    })
    $(".reverse").click(function () {
        $(":checkbox").each(function () {
            $(this).prop("checked",!$(this).prop("checked"));
//            if ($(this).prop("checked")) {
//                $(this).prop("checked",false)
//            }
//            else {
//                $(this).prop("checked",true)
//            }
        })
    })
</script>    

属性操作.html ----- val方法
<input type="text" class="c1" value="123">
<textarea name="" id="" cols="30" rows="10" class="c2" value="124"></textarea>
<button>show</button>
<select id="d1">
    <option value="hebei">河北</option>
    <option value="henan">河南</option>
    <option value="hubei">胡北</option>
</select>
<div class="c3" value="div">DIV</div>
<script>
    console.log($(".c1").val()) //取值
    $(".c1").val("hello")       //赋值
    console.log($(".c2").val()) //取值
    $(".c2").val("hello world")       //赋值
    $("button").click(function () {
        console.log($(".c2").val())
        console.log($("#d1").val())
    })
    console.log($(".c3").val()) //取不到自定义的value值
</script>

文档节点操作.html --- 
<div class="c1">
    <h3>hello world</h3>
</div>
<hr>
<button>add</button>
<script>
    $("button").click(function () {
        //添加节点
        var $h4=$("<h4>");  //创建标签
        $h4.html("hello")
//        var $img=$("<img>")
//        $img.attr({"src":"egon.jpg","width":100,"height":100})  //可以设置多个属性
//        $(".c1").append($h4)  //父节点添加子节点,追加
//        $($h4).appendTo($(".c1")) //子节点添加到父节点
//        $(".c1").prepend($h4)     //父节点添加子节点最前面
//        $h4.prependTo(".c1")
                //替换
//        $(".c1 h3").replaceWith($h4);
        // 删除 remove,empty
//        $("h3").remove()
//        $(".c1").remove()
//        $(".c1").empty()  //只是清除内容,外面框架会留着
        //复制
        var c=$(".c1").clone()
//        var c=$("h3").clone()
        $(".c1").after(c)

    })
</script>
<style>
        .c1{ 100px;height: 100px;}
    </style>

克隆实例.html
<div class="outer">
    <div class="item">
        <button class="add">+</button>
        <input type="text">
    </div>
</div>
<script>
    $(".add").click(function () {
//        var $item=$(".item").clone();       //克隆方式为1变2,变4,变8.。。
//        $(".outer").append($item)
        var $item=$(this).parent().clone()
        $item.children().first().html("-").attr("class","del_ele")
        $(".outer").append($item)
    })
//    $(".del_ele").click(function () {     //后添加上的标签不能识别到
//    })
    $(".outer").on("click",function () {
        $(".del_ele").click(function () {
            $(this).parent().remove()
        })
    })
</script>    
动画效果.html ------显示、隐藏、切换
<p>yuan</p>
<button class="show">show</button>
<button class="hide">hide</button>
<button class="qiehuan">qiehuan</button>
<script>
    $(".show").click(function () {
        $("p").show(1000)   //1000指的是显示隐藏的时间
    })
    $(".hide").click(function () {
        $("p").hide(1000)
    })
    $(".qiehuan").click(function () {
        $("p").toggle(1000)
    })
</script>

动画效果.html -----淡入淡出
淡入淡出是透明度的变化,由深变浅
<p>yuan</p>
<button class="ru">淡入</button>
<button class="chu">淡出</button>
<button class="qiehuan">qiehuan</button>
<script>
    $(".ru").click(function () {
        $("p").fadeIn(1000)   //1000指的是显示隐藏的时间
    })
    $(".chu").click(function () {
        $("p").fadeOut(1000)
    })
    $(".qiehuan").click(function () {
        $("p").fadeToggle(1000)
    })
</script>

css操作 $().offset $().positon
偏移量.html
    <!--引入jquery文件-->
    <script src="jquery-3.2.1.js"></script>
    <style>
        .c1{ 200px;height: 200px;background-color: red;}
        body{margin: 0;}
    </style>
</head>
<body>
<div class="c1"></div>
<button class="change">change</button>
<script>
    //offset方法的参照物对象是可视窗口
    //检查 console可以帮助我们做测试用
    console.log($(".c1").offset())  // 获取偏移量对象 {top:0,left:0}
    console.log($(".c1").offset().top)  //取值
    console.log($(".c1").offset().left)
    $(".change").click(function () {
        $(".c1").offset({top:200,left:200})     //赋值
    })
</script>

position.html
    <style>
        .c2{ 100px;height: 100px;background-color: blue;}
        .father{position: relative}
    </style>
</head>
<body>
<div class="father">
    <div class="c2"></div>
</div>
<button class="change">change</button>
<script>
    //父元素必须是已定位的
    console.log($(".c2").position())  // 获取偏移量对象 {top:0,left:0}
    console.log($(".c2").position().top)  //取值
    console.log($(".c2").position().left)
    console.log($(".c2").offset())  // 获取偏移量对象 {top:0,left:0}
    console.log($(".c2").offset().top)  //取值
    console.log($(".c2").offset().left)
    $(".change").click(function () {
        $(".c2").position({top:200,left:200})     //赋值
    })
</script>

tab.html 显示菜单,对象显示内容
    <!--引入jquery文件-->
    <script src="jquery-3.2.1.js"></script>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .tab_outer{
            margin: 20px auto;
             60%;
        }
        .menu{
            background-color: #cccccc;
            /*border: 1px solid red;*/
            line-height: 40px;
            text-align: center;
        }
        .menu li{
            display: inline-block;
            margin-left: 14px;
            padding:5px 20px;

        }
        .menu a{
            border-right: 1px solid red;
            padding: 11px;
        }
        .content{
            background-color: tan;
            border: 1px solid green;
            height: 300px;

        }
        .hide{
            display: none;
        }

        .current{
            background-color: #2868c8;
            color: white;
            border-top: solid 2px rebeccapurple;
        }
    </style>
</head>
<body>
      <div class="tab_outer">
          <ul class="menu">
              <li egon="c1" class="current">菜单一</li>
              <li egon="c2" >菜单二</li>
              <li egon="c3">菜单三</li>
          </ul>
          <div class="content">
              <div id="c1">内容一</div>
              <div id="c2" class="hide">内容二</div>
              <div id="c3" class="hide">内容三</div>
          </div>

      </div>
<script>
    $(".menu li").click(function () {
        $(this).attr("class","current").siblings().attr("class","hide")
        $("#"+$(this).attr("egon")).removeAttr("class").siblings().attr("class","hide")
    })
</script>

前端:看谁的页面好看就拿谁的

Bootstrap、

"put|67612|a.png"

    关于http协议:
	    
	    基于TCP协议
		请求协议:(浏览器发送给服务器)
		    请求首行        GET  url http 1.1
			请求头          Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
							Accept-Encoding:gzip, deflate, br
							Accept-Language:zh-CN,zh;q=0.8
							Cache-Control:max-age=0
							Connection:keep-alive
							Content-Length:17
		    空行
            请求体          a=1
			                b=2
							
			注意:GET请求不会把请求数据放在请求体中,会放在url后面,比如http://www.cnblogs.com/wupeiqi/articles/5237672.html?a=1&b=2

        响应协议:(服务器发送给浏览器的)
		     响应首行    HTTP协议版本号, 状态码, 状态消息 
		     响应头
			 空行
			 响应正文    html页面

    url: http://www.baidu.com
	      http://www.cnblogs.com/wupeiqi/articles/5237672.html?a=1&b=2
		  
		  协议:http
		  域名:www.cnblog.com
		  路径:/wupeiqi/articles/5237672.html
		  get请求数据:?a=1&b=2

    get请求:
	       (1)地址栏输入url
		   (2)<a href="请求url">点击</a>
		   (3) <form action="请求url" method="get"></form>

    post请求:
	         <form action="请求url" method="post"></form>
bootstrap中文网
Bootstrap前端框架
v3.bootcss.com  下载源码 解压.dist  CDN引入方式
socketserver  1-7步
Django web应用框架
bs文件夹 dist文件夹 css bootstrap.css
                    js bootstrap.js
                    fonts

bsDemo.html
    <link rel="stylesheet" href="bootstrap.css">

</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-md-5 col-lg-offset-3">
            <table class="table table-bordered table-striped table-hover">
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>班级</th>
    </tr>
    <tr>
        <td>zhang san</td>
        <td>18</td>
        <td>py18</td>
    </tr>
    <tr>
        <td>zhang si</td>
        <td>19</td>
        <td>py19</td>
    </tr>
</table>
        </div>
    </div>
</div>
v3.bootcss.com/components/ 图标下文字直接用
v3.bootcss.com/getting-strated
v3.bootcss.com/css

栅格系统.html 
    <!--引入jquery文件-->
    <script src="jquery-3.2.1.js"></script>
    <link rel="stylesheet" href="bootstrap.css">
    <style>
        .item div{border:solid 1px red}
    </style>
</head>
<body>
<!--标题菜单栏-->
<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

<!--栅格系统-->
 <div class="container">
    <div class="row">
        <div class="col-md-3">yuan</div>
        <div class="col-md-1">alex</div>
        <div class="col-md-8">egon</div>
    </div>
     <div class="row item">
      <div class="col-md-5">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
      <div class="col-md-1">.col-md-1</div>
    </div>
     <div class="row item">
      <div class="col-md-8">.col-md-8</div>
      <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row item">
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4">.col-md-4</div>
      <div class="col-md-4">.col-md-4</div>
    </div>
    <div class="row item">
      <div class="col-md-6">.col-md-6</div>
      <div class="col-md-6">.col-md-6</div>
    </div>
     <div class="row item">
         <div class="col-lg-4 col-md-offset-3">yuan</div>
     </div>
     <div class="row item">
         <div class="col-md-8">
             <div class="row">
                 <div class="col-lg-4">111</div>
                 <div class="col-lg-4">222</div>
                 <div class="col-lg-4">222</div>
             </div>
         </div>
     </div>
     <div class="row">
         <div class="col-md-8 col-md-offset-3">

         </div>
     </div>
     <button class="btn btn-primary btn-lg">添加</button>
     <button class="btn btn-danger">添加</button>
     <button class="btn btn-info btn-sm">添加</button>
     <!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
  Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
        <h4 class="modal-title" id="myModalLabel">Modal title</h4>
      </div>
      <div class="modal-body">

           <form>
          <div class="form-group">
            <label for="exampleInputEmail1">Email address</label>
            <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
          </div>
          <div class="form-group">
            <label for="exampleInputPassword1">Password</label>
            <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
          </div>
          <div class="form-group">
            <label for="exampleInputFile">File input</label>
            <input type="file" id="exampleInputFile">
            <p class="help-block">Example block-level help text here.</p>
          </div>
          <div class="checkbox">
            <label>
              <input type="checkbox"> Check me out
            </label>
          </div>
          <button type="submit" class="btn btn-default">Submit</button>
        </form>

      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>
</div>

Django

    MTV:
		   URL: url的路径与视图函数的映射关系
		   
		         http://jd.com/caidian/            caidian-----foo()
                 http://jd.com/car/                car---------bar()
                 http://jd.com/login/              login---------login()

           views:
		        逻辑处理
				
		   models:与数据库相关的操作

		   template(模板): 与html文件相关的操作

创建项目命令:django-admin startprject 项目名		   

创建应用命令:python manage.py startapp appname
	
启动项目:   python manage.py  runserver IP PROT
mysite
    manage.py  操作Django项目

    mysite:
         settings:配置
		 urls:    路径与视图的映射关系
		 wsgi:    创建socket(解析,封装数据的过程)
		 
	app01:
        views: 存放视图函数
        models:处理数据库		
浏览器   urls:ajsdhsalkda ashdksa asjdfa
        
         urls.py:
Django web框架 769056.html
        Django-MTV 7629939.html  2节课内容来讲
demo2.html
<form action="" method="post">
    <p><input type="text" name="user"></p>
    <p><input type="password" name="pwd"></p>
    <input type="submit">
</form>

pip3 install  Django 安装Django    源的问题,豆掰源或阿里源
文件夹下scripts中有Django-admin.exe/js  加入环境变量
cmd:django-admin startproject myusite 生成项目  生成mysite文件夹
项目与应用的关系:1、一个项目中有多个应用。 2、一个应用可以有多个项目用
项目包含应用
mysite文件夹 manage.py:是控制项目的 操作Django项目
             mysite: settings:配置
                     urls: 路由控制器 路径与视图函数的映射关系
                     wsgi.py: 创建socket对象(封装、解析数据的过程)
创建应用命令cmd:python manage.py startapp app名/app01 增加app01文件夹
app01: models:处理数据库
        views:存放视图函数
pycharm 新建Django项目:more settings 创建app01
启动项目:python manage.py runserver IP PORT 本机8000默认
pycharm Terminal python manage.py runserver
127.0.0.1/8000/timer 实现由时间显示的需求
原文地址:https://www.cnblogs.com/liweijing/p/7755911.html