和以上其他页面的创建方法类似,在www/templates下创建blog.html:
<!-- 继承父模板 '__base__.html' -->
{% extends '__base__.html' %}
<!--jinja2 title 块内容替换-->
{% block titl……继续阅读 »
10个月前 (04-25) 251浏览 0评论
0个赞
MVVM模式不但可用于Form表单,在复杂的管理页面中也能大显身手。例如,分页显示Blog的功能,我们先把后端代码写出来:
在apis.py中定义一个Page类用于存储分页信息:
class Page(object):
'''
Page object for display pages.
……继续阅读 »
10个月前 (04-24) 136浏览 0评论
0个赞
和创建注册页面类似,日志创建页面的编写也并不复杂。在www/templates下创建manage_blog_edit.html:
<!-- 继承父模板 '__base__.html' -->
{% extends '__base__.html' %}
<!--jinja2 title 块内……继续阅读 »
10个月前 (04-22) 128浏览 0评论
0个赞
注册页面
用户管理是绝大部分Web网站都需要解决的问题。用户管理涉及到用户注册和登录。用户注册相对简单,我们可以先通过API把用户注册这个功能实现了:
## 用户注册API
@post('/api/users')
async def api_register_user(*, email, name, passwd):
i……继续阅读 »
10个月前 (04-21) 108浏览 0评论
0个赞
至此,后端工作基本构建完成。接下要开始设计和编程前端页面了。为了更容易构建出复杂的HTML前端页面,我们需要一套基础的CSS框架和jQuery作为操作DOM的JavaScript库。
如今好用流行的CSS框架有很多例如:Bootstrap, Pure CSS, Bulma, Semantic UI 等。此教程会使用UIkit 作为网站的CSS 框架,具体的教……继续阅读 »
10个月前 (04-20) 128浏览 0评论
0个赞
API就是把Web App的功能全部封装了,所以,通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。一个API也是一个URL的处理函数,我们希望能直接通过一个@api来把函数变成JSON格式的REST API,这样,获取注册用户可以用一个API实现如下:
@get('/api/users'……继续阅读 »
10个月前 (04-19) 135浏览 0评论
0个赞
先说明下什么是MVC,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一……继续阅读 »
10个月前 (04-17) 122浏览 0评论
0个赞
一个网站应用运行时都需要读取配置文件,一般包括数据库的用户名、口令等。默认的配置文件应该符合本地开发环境,我们把默认的配置文件命名为config_default.py:
# config_default.py
configs = {
'debug': True,
'db': {
……继续阅读 »
11个月前 (04-16) 126浏览 0评论
0个赞
在正式开始Web开发前,我们需要编写一个Web框架。
由于aiohttp相对比较底层,所以我们需要基于aiohttp自己封装一个处理url的Web框架。
## 定义add_route函数,来注册一个URL处理函数
def add_route(app, fn):
method = getattr(fn, '__method__……继续阅读 »
11个月前 (04-14) 205浏览 0评论
0个赞
编写Model
前面编写了ORM,现在可以把webapp需要的3个表用Model写出来:
# -*- coding: UTF-8 -*-
# Filename : models.py
# author by : www.woodmanzhang.com
import time, uuid
from orm import Model, St……继续阅读 »
11个月前 (04-12) 113浏览 0评论
0个赞