Python学习笔记:Day 12 编写日志列表页
前言
最近在学习深度学习,已经跑出了几个模型,但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 编写日志列表页相关推荐
- Python学习笔记:Day11 编写日志创建页
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- python学习笔记(二)之列表
python学习笔记(二)之列表 说明:列表是python的苦力 特点:列表是可以修改的.这种修改,不是复制一个新的,而是在原地进行修改.append()和extend() 常用的列表函数:appen ...
- Python学习笔记:Day5 编写web框架
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day4 编写Model
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记3—第3章 列表简介
文章目录 3.1 列表是什么 3.1.1 访问列表元素 3.1.2 索引从0而不是从1开始 3.1.3 使用列表中的各个值 3.1.4 动手试一试 3.2 修改.添加.和删除元素 3.2.1 修改列表 ...
- python学习笔记12-类代码编写细节
一.class语句 一般形式 class <name>(superclass,...): data=value def mothod(self,...): self.mem ...
- python基础课程第12章_流畅的python学习笔记-第12章
第12章-类继承 super函数 Py 2.x 和 Py 3.x 中有一个很大的区别就是类,无论是类的定义还是类的继承. Py 3.x 中类的继承可以直接使用 super() 关键字代替原来的 sup ...
- Python学习笔记第一天----字符串和列表
一.字符串 # 在python中,用引号括起来的都是字符串,其中的引号可以是单引号,也可以是双引号 "This is a string" 'This is also a strin ...
- Python学习笔记(二):列表、元组和字典章节练习题
1.提示用户输入N个字符串,将它们封装成元组,然后计算并输出该元组乘以3的结果,再计算并输出该元组加上('Java', 'Python')的结果 # 方法一:提示用户输入N个字符串 str1 = in ...
最新文章
- c++ Factor泛型编程示例
- strcmp可以比较数组么_6.3 C语言字符数组
- raptor五个数排序流程图_数据结构与算法(一):排序(上)
- 【PP操作手册】工程变更创建的创建
- iTunes备份注意
- android脚本快捷方式,Android:如何创建主屏幕快捷方式启动shell脚本?
- opencv 平滑处理
- AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
- linux命令 renice,Linux命令之nice和renice
- java基础-(一)-JDK的下载和安装
- Asymptotic efficiency of nonparametric tests笔记(正在进行中)
- TQ2440中断系统
- 美通社企业新闻汇总 | 2019.3.1 | 东京是亚洲商务休闲最佳目的地;贺恩霆担任赛诺菲中国区总裁...
- linux英伟达显卡内核不匹配,Linux 5.11 内核将添加对英伟达 RTX 30 系列显卡的支持...
- 神经网络中warmup策略
- 再见了,Teamviewer!
- java枚举类Enum入门理解
- 职场切记:没有苦劳,只有功劳!
- 不义联盟2充值php_DC也许醒过来了:谈谈《不义联盟2》和美漫IP改编手游
- linux发邮件报错,Linux ExtMail登录界面报错