这周主要是官网的相关开发
1.enum是计算机编程语言中的一种数据类型。
枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
2.ng的分页
http://www.php.cn/js-tutorial-1909.html
Math.ceil用于对数值向上取整,即得到大于或等于该数值的最小整数
$scope.setPage = function() {
$scope.pageSize = 10;
$scope.pages = Math.ceil($scope.personinfos.length / $scope.pageSize); //分页数
$scope.newPages = $scope.pages > $scope.pageSize ? $scope.pageSize : $scope.pages;
$scope.pageList = [];
$scope.selPage = 1;
// 设置表格数据源
$scope.setData = function() {
// 通过当前页数筛选出表格当前显示数据
$scope.items = $scope.personinfos.slice(($scope.pageSize * ($scope.selPage - 1)), ($scope.selPage * $scope.pageSize))
}
$scope.items = $scope.personinfos.slice(0, $scope.pageSize);
// 分页数组
for (var i = 0; i < $scope.newPages; i++) {
$scope.pageList.push(i + 1);
}
// 打印当前选中页的索引
$scope.selectPage = function(page) {
// 不能小于1,大于最大值
if (page < 1 || page > $scope.pages) return;
// 最多显示5个分页
if (page > 2) {
// 因为只显示5个页数,大于2页开始分页转换
var newPageList = [];
for (var i = (page - 3); i < ((page + 2) > $scope.pages ? $scope.pages : (page + 2)); i++) {
newPageList.push(i + 1);
}
$scope.pageList = newPageList;
}
$scope.selPage = page;
$scope.setData();
$scope.isActivePage(page);
$log.log("选择的页:" + page);
};
// 设置选中页样式
$scope.isActivePage = function(page) {
return $scope.selPage == page;
};
// 上一页点击事件
$scope.Previous = function() {
$scope.selectPage($scope.selPage - 1);
}
// 下一页点击事件
$scope.Next = function() {
$scope.selectPage($scope.selPage + 1);
}
}
3.hover 动画
.imghover:hover {
-webkit-transform: translateY(-20px);
-moz-transform: translateY(-20px);
-ms-transform: translateY(-20px);
transform: translateY(-20px);
-webkit-transition: -webkit-transform .3s;
transition: -webkit-transform .3s;
-moz-transition: transform .3s, -moz-transform .3s;
transition: transform .3s;
transition: transform .3s, -webkit-transform .3s, -moz-transform .3s;
}
4.js获取时间戳
- 1 >Date.parse(new Date())
指定日期和时间据1970/1/1午夜(GMT时间)之间的毫秒数 - 2 >(new Date()).valueOf()
返回1970年1月1日至今的毫秒数 - 3 >new Date().getTime()
返回Date对象的原始值
同样从时间戳解析出时间可以用下面的代码
new Date(1498788561000).toLocaleString()
5.Django 通过内网通过ip访问
使用
python manage.py runserver 0.0.0.0:8000
6.get_template 在Django1.11被废弃,解决
直接把相关语句删掉
把return里语句替换成
return render(request,'newscontent.html',{'posts': posts})
7.配置Django的ckeditor
http://www.nanerbang.com/article/2/
8.Django配置分页
1.内置django分页插件:
view.py引入
from django.core.paginator import PageNotAnInteger, Paginator, EmptyPage
view.py
message_list = MyWebPost.objects.all().order_by('-pk')#获取数据列表
paginator = Paginator(message_list, 6)#设置每页最多内容
page = request.GET.get('page')#获取页码
try:
contacts = paginator.page(page)#分配页面
except PageNotAnInteger:
contacts = paginator.page(1)
except EmptyPage:
contacts = paginator.page(paginator.num_pages)
index.html
<div class="pagination col-md-12 col-xs-12">
<span class="step-links col-md-12 col-xs-12">
{% if contacts.has_previous %}
<a href="?page={{ contacts.previous_page_number }}">前一页</a>
{% endif %}
<span class="current">
第{{ contacts.number }}页 / 共{{ contacts.paginator.num_pages }}页
</span>
{% if contacts.has_next %}
<a href="?page={{ contacts.next_page_number }}">下一页</a>
{% endif %}
</span>
</div>
9.修改Django后台的标题等
admin.site.site_header = _('My project')
admin.site.index_title = _('Features area')
admin.site.site_title = _('HTML title from adminsitration')
10.Django后台字段显示方式,以及搜索框
class MyWebPostAdmin(admin.ModelAdmin):
list_display = ('title', 'timestamp')
search_fields = ('title', 'body')
admin.site.register(models.MyWebPost, MyWebPostAdmin)
11.Django后台在字段中显示图片
model.py
def admin_image(self):
return '![](/media/%s)' % self.img
admin_image.allow_tags = True
admin.py
list_display = ('admin_image')
12.上传图片预览
model.py
def admin_image(self):
return '![](/media/%s)' % self.img
admin_image.allow_tags = True
admin_image.short_description = u'封面图片展示'#标题
admin.py
list_display = ('admin_image')
readonly_fields = ('admin_image',) #在编辑页面显示