前言

最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,
写下这些帖子,廖雪峰的课程连接在这里:廖雪峰
Python的相关介绍,以及它的历史故事和运行机制,可以参见这篇:python介绍
Python的安装可以参见这篇:Python安装
Python的运行模式以及输入输出可以参见这篇:Python IO
Python的基础概念介绍,可以参见这篇:Python 基础
Python字符串和编码的介绍,可以参见这篇:Python字符串与编码
Python基本数据结构:list和tuple介绍,可以参见这篇:Python list和tuple
Python控制语句介绍:ifelse,可以参见这篇:Python 条件判断
Python控制语句介绍:循环实现,可以参见这篇:Python循环语句
Python数据结构:dict和set介绍Python数据结构dict和set
Python函数相关:Python函数
Python高阶特性:Python高级特性
Python高阶函数:Python高阶函数
Python匿名函数:Python匿名函数
Python装饰器:Python装饰器
Python偏函数:Python偏函数
Python模块:Python模块
Python面向对象编程(1):Python面向对象
Python面向对象编程(2):Python面向对象(2)
Python面向对象编程(3):Python面向对象(3)
Python面向对象编程(4):Pyhton面向对象(4)
Python面向对象高级编程(上):Python面向对象高级编程(上)
Python面向对象高级编程(中上):Python面向对象高级编程(中上)
Python面向对象高级编程(中下):Python面向对象高级编程(中下)
Python面向对象高级编程(完):Python面向对象高级编程(完)
Python错误调试(起):Python调试:起
Python错误调试(承):Python调试:承
Python错误调试(转):Python调试:转
Python错误调试(合):python调试:合
Python文件IO编程:Python文件IO
Python文件IO编程2:Python文件IO2
Python文件IO编程3:PYthon文件IO3
Python进程和线程(起):Python进程和线程起
Python进程和线程(承):Python进程和线程承
Python进程和线程(转):Python进程和线程转
Python进程和线程(合):Python进程和线程合
Python正则表达式:Python正则表达式
Python学习笔记:常用内建模块1:Python学习笔记:常用内建模块1
Python学习笔记:常用内建模块2:Python学习笔记:常用内建模块2
Python学习笔记:常用内建模块3:Python学习笔记:常用内建模块3
Python学习笔记:常用内建模块4:Python学习笔记: 常用内建模块4
Python学习笔记:常用内建模块5:Python学习笔记: 常用内建模块5
Python学习笔记:常用内建模块6:Python学习笔记:常用内建模块6
Python学习笔记:第三方模块1:Python常用第三方模块
Python学习笔记:第三方模块2:Python常用第三方模块
Python学习笔记:第三方模块3:Python常用第三方模块
Pytho学习笔记:网络编程:Python网络编程
Python学习笔记:电子邮件:Python电子邮件1
Python学习笔记:SMTP服务器:PythonSMTP服务器
Python学习笔记:POP3服务器:PythonPOP3服务器
Python学习笔记:Python数据库 Python数据库1
Python学习笔记:Python数据库2Python数据库2
Python学习笔记:web开发1Python学习笔记:web开发1
Python学习笔记:web开发2Python学习笔记: web开发2
Python学习笔记: web开发3Python学习笔记: web开发3
Python学习笔记:异步IO(1)Python学习笔记:异步IO(1)
Python学习笔记:异步IO(2)Python学习笔记:异步IO(2)
Python学习笔记:异步IO(3)Python学习笔记:异步IO(3)
Python学习笔记:Day 1-2开发Python学习笔记:Day1-2开发
Python学习笔记:Day 3 ORMPython学习笔记:Day3 ORM
Python学习笔记:Day 4 ModelPython学习笔记:Day4Model
Python学习笔记:Day 5 web框架PYTHON学习笔记:DAy5
Python学习笔记:Day 6 配置文件Python学习笔记:Day 6 配置文件
Python学习笔记:Day 7 编写MVCPython学习笔记:Day 7编写MVC
Python学习笔记:Day 8 构建前端Python学习笔记:Day 8 构建前端
Python学习笔记:Day 9 编写APIPython 9编写API
Python学习笔记:Day 10 用户注册和登陆Python 10用户注册和登陆
Python学习笔记:Day11 编写日志创建页day11 编写目录

#目录 [TOC] #编写日志列表页 MVVM模式不但可用于Form表单,在复杂的管理页面中也能大显身手。例如,分页显示Blog的功能,我们先把后端代码写出来: 在apis.py中定义一个Page类用于存储分页信息:

class Page(object):def __init__(self, item_count, page_index=1, page_size=10):self.item_count = item_countself.page_size = page_sizeself.page_count = item_count // page_size + (1 if item_count % page_size > 0 else 0)if (item_count == 0) or (page_index > self.page_count):self.offset = 0self.limit = 0self.page_index = 1else:self.page_index = page_indexself.offset = self.page_size * (page_index - 1)self.limit = self.page_sizeself.has_next = self.page_index < self.page_countself.has_previous = self.page_index > 1def __str__(self):return 'item_count: %s, page_count: %s, page_index: %s, page_size: %s, offset: %s, limit: %s' % (self.item_count, self.page_count, self.page_index, self.page_size, self.offset, self.limit)__repr__ = __str__

在handlers.py中实现API:

@get('/api/blogs')
def api_blogs(*, page='1'):page_index = get_page_index(page)num = yield from Blog.findNumber('count(id)')p = Page(num, page_index)if num == 0:return dict(page=p, blogs=())blogs = yield from Blog.findAll(orderBy='created_at desc', limit=(p.offset, p.limit))return dict(page=p, blogs=blogs)

管理页面:

@get('/manage/blogs')
def manage_blogs(*, page='1'):return {'__template__': 'manage_blogs.html','page_index': get_page_index(page)}

模板页面首先通过API:GET /api/blogs?page=?拿到Model:

{"page": {"has_next": true,"page_index": 1,"page_count": 2,"has_previous": false,"item_count": 12},"blogs": [...]
}

然后,通过Vue初始化MVVM:

<script>
function initVM(data) {var vm = new Vue({el: '#vm',data: {blogs: data.blogs,page: data.page},methods: {edit_blog: function (blog) {location.assign('/manage/blogs/edit?id=' + blog.id);},delete_blog: function (blog) {if (confirm('确认要删除“' + blog.name + '”?删除后不可恢复!')) {postJSON('/api/blogs/' + blog.id + '/delete', function (err, r) {if (err) {return alert(err.message || err.error || err);}refresh();});}}}});$('#vm').show();
}
$(function() {getJSON('/api/blogs', {page: {{ page_index }}}, function (err, results) {if (err) {return fatal(err);}$('#loading').hide();initVM(results);});
});
</script>

View的容器是#vm,包含一个table,我们用v-repeat可以把Model的数组blogs直接变成多行的: “`

新日志

标题 / 摘要 作者 创建时间 操作

“`v-repeat指令,就什么都不用管了。

可以把v-repeat=”blog: blogs”看成循环代码,所以,可以在一个内部引用循环变量blog。v-text和v-attr指令分别用于生成文本和DOM节点属性。

完整的Blog列表页如下:

Python学习笔记:Day 12 编写日志列表页相关推荐

  1. Python学习笔记:Day11 编写日志创建页

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. python学习笔记(二)之列表

    python学习笔记(二)之列表 说明:列表是python的苦力 特点:列表是可以修改的.这种修改,不是复制一个新的,而是在原地进行修改.append()和extend() 常用的列表函数:appen ...

  3. Python学习笔记:Day5 编写web框架

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  4. Python学习笔记:Day4 编写Model

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记3—第3章 列表简介

    文章目录 3.1 列表是什么 3.1.1 访问列表元素 3.1.2 索引从0而不是从1开始 3.1.3 使用列表中的各个值 3.1.4 动手试一试 3.2 修改.添加.和删除元素 3.2.1 修改列表 ...

  6. python学习笔记12-类代码编写细节

    一.class语句 一般形式 class         <name>(superclass,...): data=value def mothod(self,...): self.mem ...

  7. python基础课程第12章_流畅的python学习笔记-第12章

    第12章-类继承 super函数 Py 2.x 和 Py 3.x 中有一个很大的区别就是类,无论是类的定义还是类的继承. Py 3.x 中类的继承可以直接使用 super() 关键字代替原来的 sup ...

  8. Python学习笔记第一天----字符串和列表

    一.字符串 # 在python中,用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号 "This is a string" 'This is also a strin ...

  9. Python学习笔记(二):列表、元组和字典章节练习题

    1.提示用户输入N个字符串,将它们封装成元组,然后计算并输出该元组乘以3的结果,再计算并输出该元组加上('Java', 'Python')的结果 # 方法一:提示用户输入N个字符串 str1 = in ...

最新文章

  1. c++ Factor泛型编程示例
  2. strcmp可以比较数组么_6.3 C语言字符数组
  3. raptor五个数排序流程图_数据结构与算法(一):排序(上)
  4. 【PP操作手册】工程变更创建的创建
  5. iTunes备份注意
  6. android脚本快捷方式,Android:如何创建主屏幕快捷方式启动shell脚本?
  7. opencv 平滑处理
  8. AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
  9. linux命令 renice,Linux命令之nice和renice
  10. java基础-(一)-JDK的下载和安装
  11. Asymptotic efficiency of nonparametric tests笔记(正在进行中)
  12. TQ2440中断系统
  13. 美通社企业新闻汇总 | 2019.3.1 | 东京是亚洲商务休闲最佳目的地;贺恩霆担任赛诺菲中国区总裁...
  14. linux英伟达显卡内核不匹配,Linux 5.11 内核将添加对英伟达 RTX 30 系列显卡的支持...
  15. 神经网络中warmup策略
  16. 再见了,Teamviewer!
  17. java枚举类Enum入门理解
  18. 职场切记:没有苦劳,只有功劳!
  19. 不义联盟2充值php_DC也许醒过来了:谈谈《不义联盟2》和美漫IP改编手游
  20. linux发邮件报错,Linux ExtMail登录界面报错

热门文章

  1. 实验0-Hive配置与启动
  2. partial in latex
  3. cambridge mphil in management result
  4. 看事实风向的网站,做风向建模和出去放风筝,飞无人机的时候可以看一看~
  5. Ajax调用MVC控制器参数为实体
  6. 微信小程序websocket聊天室
  7. Android基础_1 四大基本组件介绍与生命周期
  8. C中结构体的存储分配
  9. 第十八章 8string类insert成员函数的使用
  10. Revit二次开发之“创建尺寸标注”