实习第五周

时间:2022-07-23
本文章向大家介绍实习第五周,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

这周主要是官网的相关开发

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()

image.png

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')

image.png

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',) #在编辑页面显示