技术经验分享:Django学习日记

简介: 技术经验分享:Django学习日记

Bootstrap组件 和 Font Awesome组件 


    Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目


    Font Awesome 字体可以提供可缩放矢量图标,它可以被定制大小、颜色、阴影以及任何可以用CSS的样式。


    总而言之 为了好看


    -bootstrap存在响应式布局: @media()


 即当页面分辨率小于1060(比喻)px时,布局会发生变化   


    -导航条 -路径导航 等等


    -font awesome寻找图标


  将其放入static库plugins目录中




目标:完善学员管理系统


  -后台管理布局 一大堆的CSS样式


思路三大框先定好        .


    pege-header  头部


    .page-body   身体    里面分两部分 .page-menus 菜单 .page-content 内容


然后依次补充细节内容 利用bootstrap 和font-awesome装修页面 最后利用继承 {% extends ’layout.html‘ %}母版layout


分别三次继承 xx管理中的 {css}部分 {xx}部分 {js}部分


下面的关于CSS样式的学习和复习


body{


  margin:0}; 表示header部分与页面顶部的距离


注意! 与bootsrap组件使用会出现顶部留出一个空白行,这是一个和botstrap中的common中margin属性冲突了,注释掉即可


.left{        .right{


 float:left}         float:right}


用于跟随页面左右部


.page- header {  


  height:48px //距离顶部48个像素


  min-width:1190px //当页面宽度小于1190px,自动增加可以左右移动的拉条


  background-color:#we6da4; //背景颜色


  line-height:48px; //用于设置多行元素的空间量,如多行文本的间距。对于块级元素,它指定元素行盒(line boxes)的最小高度。


  }      


.page- header .logo{ //头部的logo部分


  color: white;


  font-size: 18px; 字体大小


  width: 200px;


  text-align: center; 在其范围里面位置


  border-right: 1px solid #449d44; 设置边框


}


.pgae -header .avatat{


  padding: 0 20px ; 设置上下内边距0 左右内边距20px


  position: relative;


}


.page- header . avatar img{


  border -radius : 50% ://元素添加圆角边框:


  width: 48px;


  height: 48px;


}


.page - header .avatar .user-info {


  position : absolute; 绝对定位属性 绝对距离页面顶部48px 右面0px


  width:200px;


  top:48px;


  right:0;


  background-color:white;


  border:1px solid #ddddddd;


  color: black;


  z-index;100;


  display;none; 目的是鼠标悬停时才浮现


}


.page - header .avatar .user-info a {


  display: block;


  padding:1px;


}


.page -header .avatar:hover .user-info{


  display:block; 设置鼠标悬停user-info标签时display取消


}


.menus{


  width:200px;


  position:absolute;


  left:0;


  bottom:0;


  top:48px;


  border:1px solid #d0e9c6;


  background-color:#faebcc;


}


.page- bodu .menus a{


  display:block;  一个a标签一行


  padding:10px 5px ;


  border-bottom: 1px solid #dddddd


}


.content{


  position:absolute;


  left:200px


  right:0;


  bottom:0;


  top:48px;


  min-widthj:900px


  overflow:scroll;溢出元素内容区的内容会如何处理。提供一种滚动机制有可能即使元素框中可以放下所有内容也会出现滚动条。


  z-index:99


}


后台管理的html


[/span>div class="page-header"

[/span>div class="logo left"

[/span>div class="avatar right "

[/span>img src="/static/images/老婆.jpg"

[/span>div class="user-info"

[/span>a

[/span>a



[/span>div class="rmenus right"

[/span>a class="fa fa-comment-o"

[/span>a class="fa fa-envelope-open"

[/span>a class="fa fa-cart-arrow-down"



[/span>div class="page-body"

[/span>div class="menus"

[/span>a

[/span>a

[/span>a


[/span>div class="content"

[/span>ol class="breadcrumb"

[/span>lia href="#"

[/span>lia href="#"

[/span>li class="active"


cookie是一个保存在浏览器客户端的”键值对“,可以设置超时时间 可以在html的request中查询


    是客户端向服务端发送的 客户端每次请求访问服务端,都会带着cookie去


    需要记住set_cookie 的几个设置参数 ket value 键值对


                     max_age = None expires = None 设置超时时间


                    path=’/‘ 用于设置一级域名和二级域名之间是不是用同一个cookie 一个网站可能拥有不同cookie


                    secure=False Https安全


                    httponly = False


一般实现于用户登录 即是你想要登录一个网站,需要用户登录 在服务器端需要调用服务器查看你是不是它的客户


tk = request.COOKIES.get('ticket')


print(tk)


if not tk:


return redirect('/login/')


      -服务端可以向客户端写cookie  


obj = HttpResponse('xxxx')


obj.set_cookie('k1','v1')


return obj


      -关于超时时间有两种设置方法 即超过了相应的时间页面会刷新退出用户登录


          第一种是利用max_age 秒数


obj.set_cookie('ticket',"asdasdsd",max_age=10)


          第二种用于年月日时分秒 具体的时间设置


import datetime


from datetime import timedelta


//代码效果参考: http://www.jhylw.com.cn/323924869.html

ct = datetime.datetime.utcnow()


v = timedelta(seconds =10)


value = ct +v


obj.set_cookie('ticket','123123',expires=value)


return obj


     -cookie的安全性 可以用加密的函数


obj.set_signed_cookie('ticket',"123123",salt='jjjjjj')


总结:


1. BootStrap响应式布局: @media()


2. 栅格:分成12份


3. 表格


4. 导航条 bootstrap组件找


5. 路径导航


6. fontawesome


7. 布局position:absolute 绝对路径


8. 当鼠标移动到xx样式的标签上时,其子标签.g应用以下属性


.xx:hover .g{


}


9. Django母版


母版:


...


{% block s1 %} {%endblock%}


...


{% block s2 %} {%endblock%}


子板:


{% extends "layout.html "%}


% block s1 %} fff {%endblock%}


{% block //代码效果参考:http://www.jhylw.com.cn/585728553.html

s2 %} ffffff {%endblock%}

10. 用户登录


- cookie: 保存在浏览器端“键值对”,设置超时时间


- 发送Http请求时,在请求头中携带当前所有可访问的cookie


- 响应头


- 写cookie


@xzxx


def index(request):


obj = HttpResponse('...')


obj.set_cookie(.....)


request.COOKIES.get(...)


obj.set_signed_cookie(.....)


request.get_signed_cookie(....)


- 自定义cookie签名


- 装饰器装饰views中的函数

相关文章
|
存储 缓存 数据库
Django框架学习(四)
Django框架学习(四)
|
前端开发 关系型数据库 MySQL
Django框架学习(三)
Django框架学习(三)
|
JSON 前端开发 数据库
Django框架学习(一)
Django框架学习(一)
|
23天前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
34 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
23天前
|
SQL Java 数据库
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
这篇文章是关于如何使用Django框架的ORM系统在视图(views)层面进行数据库的增、删、改、查操作的教程。
16 0
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
|
23天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
54 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
5月前
|
NoSQL Redis Python
技术经验分享:Django实现websocket
技术经验分享:Django实现websocket
33 0
|
2月前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
3月前
|
存储 缓存 数据管理
Django后端架构开发:后台管理与会话技术详解
Django后端架构开发:后台管理与会话技术详解
44 0
|
5月前
|
数据安全/隐私保护 Python
必知的技术知识:django自定义分页器
必知的技术知识:django自定义分页器