博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础-Day 11 - 编写日志创建页
阅读量:4147 次
发布时间:2019-05-25

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

一、项目来源

廖雪峰老师 Day 11 - 编写日志创建页

二、编码

1. 管理员登陆

记得事先先设置 admin 为 1

这里写图片描述

==============================================================================================app.py@asyncio.coroutinedef auth_factory(app, handler):    @asyncio.coroutine    def auth(request):        logging.info('check user: %s %s' % (request.method, request.path))        request.__user__ = None        cookie_str = request.cookies.get(COOKIE_NAME)        if cookie_str:            user = yield from cookie2user(cookie_str)            if user:                logging.info('set current user: %s' % user.email)                request.__user__ = user        if request.path.startswith('/manage/') and (request.__user__ is None or not request.__user__.admin):            return web.HTTPFound('/signin')        return (yield from handler(request))    return auth@asyncio.coroutinedef init(loop):    yield from orm.create_pool(loop=loop, host='127.0.0.1', port=3306, user='root', password='', db='sufadi')    app = web.Application(loop=loop, middlewares=[        logger_factory, auth_factory, response_factory    ])==============================================================================================

登录详情

INFO:root:Request: GET /INFO:root:check user: GET /INFO:root:SQL: select `id`, `email`, `passwd`, `admin`, `name`, `image`, `created_at` from `users` where `id`=?INFO:root:rows returned: 1INFO:root:set current user: 123@123.com

这里写图片描述

2.写博客-UI

这里写图片描述

manage_blog_edit.html    
取消

3.创建博客

==============================================================页面的点击事件__base__.html
  • 写博客
  • ==============================================================handles.py@get('/manage_blogs_create')def manage_create_blog(): return { '__template__': 'manage_blog_edit.html', 'id': '', 'action': '/api/blogs' }==============================================================跳转到编辑界面manage_blog_edit.html
    取消
    function initVM(blog) { var vm = new Vue({ el: '#vm', data: blog, methods: { submit: function (event) { event.preventDefault(); var $form = $('#vm').find('form'); $form.postJSON(action, this.$data, function (err, r) { if (err) { $form.showFormError(err); } else { return location.assign('/api/blogs/' + r.id); } }); } } }); $('#vm').show();}==============================================================数据库的保持事件handles.py@post('/api/blogs')def api_create_blog(request, *, name, summary, content): check_admin(request) if not name or not name.strip(): raise APIValueError('name', 'name cannot be empty.') if not summary or not summary.strip(): raise APIValueError('summary', 'summary cannot be empty.') if not content or not content.strip(): raise APIValueError('content', 'content cannot be empty.') blog = Blog(user_id=request.__user__.id, user_name=request.__user__.name, user_image=request.__user__.image, name=name.strip(), summary=summary.strip(), content=content.strip()) yield from blog.save() return blog

    运行保存

    这里写图片描述

    数据库

    这里写图片描述

    你可能感兴趣的文章
    7 个适用于所有前端开发人员的很棒API,你需要了解一下
    查看>>
    25个构建Web项目的HTML建议,你需要了解一下!
    查看>>
    【web素材】02-10款大气的购物商城网站模板
    查看>>
    6种方式实现JavaScript数组扁平化(flat)方法的总结
    查看>>
    49个在工作中常用且容易遗忘的CSS样式清单整理
    查看>>
    20种在学习编程的同时也可以在线赚钱的方法
    查看>>
    隐藏搜索框:CSS 动画正反向序列
    查看>>
    127个超级实用的JavaScript 代码片段,你千万要收藏好(上)
    查看>>
    【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
    查看>>
    【5分钟代码练习】01—导航栏鼠标悬停效果的实现
    查看>>
    127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
    查看>>
    127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
    查看>>
    【web素材】03-24款后台管理系统网站模板
    查看>>
    Flex 布局教程:语法篇
    查看>>
    年薪50万+的90后程序员都经历了什么?
    查看>>
    2019年哪些外快收入可达到2万以上?
    查看>>
    【JavaScript 教程】标准库—Date 对象
    查看>>
    前阿里手淘前端负责人@winter:前端人如何保持竞争力?
    查看>>
    【JavaScript 教程】面向对象编程——实例对象与 new 命令
    查看>>
    我在网易做了6年前端,想给求职者4条建议
    查看>>