博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网站搭建笔记精简版---廖雪峰WebApp实战-Day12:编写日志创建页笔记
阅读量:4165 次
发布时间:2019-05-26

本文共 2890 字,大约阅读时间需要 9 分钟。

先贴。

如何上传github项目分支参考的:如何解决新上传一个项目到分支的问题部分。

后端api

首先在apis.py中定义一个Page类用于存储分页信息:

#用于选择当前页面,在handlers.py文件中调用def get_page_index(page_str): 	p = 1 #初始化页数取整 	try: 		p = int(page_str) 	except ValueError as e: 		pass 	if p < 1: 		p = 1 	return pclass Page(object):    # 数据库博客总数,初始页,每页显示的博客总数    def __init__(self, item_count, page_index=1, page_size=10):        self.item_count = item_count        self.page_size = page_size        # 一共所需要页的总数        self.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 = 0            self.limit = 0            self.page_index = 1        else:            self.page_index = page_index #初始页            self.offset = self.page_size * (page_index - 1) #当前页数,应从数据库的那个序列博客开始显示            self.limit = self.page_size # 当前页数,应从数据库的那个序列博客结束像素        self.has_next = self.page_index < self.page_count #是否下一页        self.has_previous = self.page_index > 1 #是否上一页    def __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中定义模板函数:

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

然后实现相应博客api功能

@get('/api/blogs')async def api_blogs(*, page='1'):    page_index = get_page_index(page)    num = await Blog.findNumber('count(id)') #查询日志总数    p = Page(num, page_index)    if num == 0: #数据库没日志        return dict(page=p, blogs=())    blogs = await Blog.findAll(orderBy='created_at desc', limit=(p.offset, p.limit)) #选取对应的日志    return dict(page=p, blogs=blogs) #返回管理页面信息,及显示日志数

前端网页分析

manage_blogs.html网页中,首先调用@get(’/api/blogs’),接下来调用initvm函数进行传值,最后使用v-repeat循环显示在页面上。代码如下。

{% extends '__base__.html' %}{% block title %}日志{% endblock %}{% block beforehead %}{% endblock %}{% block content %}    
正在加载...
新日志
标题 / 摘要 作者 创建时间 操作
{% endblock %}

结果显示

管理博客页面参考博客

转载地址:http://omlxi.baihongyu.com/

你可能感兴趣的文章
SuperMap iClient3D for WebGL教程-description描述属性
查看>>
SuperMap iClient3D for WebGL教程-CallbackProperty
查看>>
如何修改leaflet聚合图的层级和样式
查看>>
三维分析之开敞度分析
查看>>
BIM+GIS应用的八大挑战
查看>>
.net实现.aspx页面自动加载.cs程序定义的变量并按照格式输出
查看>>
[Leetcode]最后一个单词的长度
查看>>
merges sort use c++
查看>>
插入排序用递归实现
查看>>
工作流审批平台-审批流程-指定审批部门
查看>>
商务智能-系统概述-数据图形方式
查看>>
软件项目管理系统-项目管理-模块定义-开发内容
查看>>
工作流审批平台-审批功能
查看>>
商务智能-基本方法-特征与角度
查看>>
软件项目管理系统-项目管理-模块定义-开发笔记
查看>>
工作流审批平台-业务申请-申请书一览
查看>>
商务智能-基本方法-数据钻取
查看>>
C++程序员技术需求规划(发展方向)
查看>>
TinyXml2解析xml用法例子
查看>>
Linux 虚拟内存和物理内存
查看>>