通过前面几天的的努力,ORM框架、Web框架和配置都已就绪,我们可以开始编写一个最简单的MVC,把它们全部启动起来。

MVC:Model-View-Controller,中文名“模型-视图-控制器”。
其中Python处理的URL函数就是C:Controller,Controller主要负责业务逻辑,比如检查用户名是否存在,取出用户信息等等;
而View负责显示逻辑,通过一些简单的替换变量,View生成最终用户看到的HTML,那View实质就是HTML模板(如Django等),而在本次Web开发就是Jinja2模板;
Model是用来传给View的,这样View在替换变量的时候,就可以从Model中取出相应的数据。

通过Web框架的@get和ORM框架的Model支持,可以很容易地编写一个处理首页URL的函数
新建handlers.py:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' url handlers '

import re, time, json, logging, hashlib, base64, asyncio

from coroweb import get, post

from models import User, Comment, Blog, next_id

@get('/')
async def index(request):
    users = await User.findAll()
    return {
        '__template__': 'test.html',
        'users': users
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
‘_template_’指定的模板文件是test.html,其他参数是传递给模板的数据,所以我们在模板的根目录templates下创建test.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Test users - Awesome Python Webapp</title>
</head>
<body>
    <h1>All users</h1>
    {% for u in users %}
    <p>{{ u.name }} / {{ u.email }}</p>
    {% endfor %}
</body>
</html>

这个html中逻辑部分用花括号{和百分号%来嵌套,这是jinja2模板的规范
和前段时间学习的Java中的JSP有些相似

接下来,运行app.py启动服务器,在浏览器访问

localhost:9000/

应该可以看到你的数据库表中users中存储的数据,如果没有的话可以自己手动添加几天记录再试一下。
这就是一个简单的MVC
————————————————
版权声明:本文为CSDN博主「永无乡」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/josephpai/article/details/76037662

Python3教程Web开发实战梳理-day7(看着不错)相关推荐

  1. Laravel 教程 - Web 开发实战入门 ( Laravel 5.5 )购买链接

    Laravel 教程 - Web 开发实战入门 ( Laravel 5.5 )购买链接: 推荐给你高品质的实战课程 https://laravel-china.org/courses?rf=15818 ...

  2. python测试开发自学教程-Web开发哪家强?看我用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 简介 要实现颜值测试功能,大致有两种方式:一种是自己 ...

  3. L02 Laravel 教程 - Web 开发实战进阶 - 笔记

    创建应用 创建 LaraBBS 应用 composer create-project laravel/laravel larabbs --prefer-dist "9.*" 新增站 ...

  4. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(4):解析库Xpath的使用方法总结

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

  5. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(3):抓取猫眼电影榜单TOP100电影,并存入Excel表格

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

  6. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号[小众技术] ...

  7. 【全栈开发实战小草看书之Web端(八)主入口】

    全栈开发实战小草看书之Web端(八)主入口 Html文件(index.html) <!DOCTYPE html> <html lang="en"><h ...

  8. 【Python3网络爬虫开发实战】4-解析库的使用-3 使用pyquery

    在上一节中,我们介绍了Beautiful Soup的用法,它是一个非常强大的网页解析库,你是否觉得它的一些方法用起来有点不适应?有没有觉得它的CSS选择器的功能没有那么强大? 如果你对Web有所涉及, ...

  9. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

最新文章

  1. 备战 ‘金三银四’ 必备超多软件测试面试题全在这里
  2. 理解T-SQL: 存储过程
  3. C# winform版 nbtstat
  4. 微服务学习--Linux
  5. web.config配置文件格式
  6. 爬虫小白第一篇 西刺代理
  7. java程序设计期末考试试题汇总及答案_《JAVA程序设计》期末考试试题汇总及答案...
  8. MySQL的索引失效问题
  9. ADXL345-数字加速度计
  10. ANSYS APDL
  11. STM32单片机:定时器TIM输出PWM波
  12. 易中天讲座免费在线学习 免费下载
  13. C语言学习之有一个函数: y= x(x<1) 2x-1 (1≤x<10) 3x-11 (x≥10) 写程序,输入x的值,输出y相应的值。
  14. 北京公共自行车-北京市交通委员会运输管理局
  15. Android自定义DataTimePicker(日期选择器)
  16. python 统计哈姆雷特词汇频率
  17. 一加3 android 8.0,OnePlus 3公测版固件完整rom包Android 8.0第15版
  18. 如何将USBKey中的证书注册到Windows系统中、分享一个 证书 C++安装
  19. php 两段文本对比,不同的文字显示高亮
  20. 2017-07-31关于敏捷开发的一些想法

热门文章

  1. C++递增运算符重载
  2. C++对C的加强之struct类型加强
  3. web展现mysql_web页面实现LED跑马灯效果(涉及web前端、原生JS、PHP、mysql)
  4. 一个基于Mule的企业服务总线的案例(关于JMS)
  5. 修改oracle数据库的名字
  6. 项目--教师日常办公平台中的活动图
  7. java mvc 批量插入_请教mysql spring mvc +mybatis中批量插入的问题?
  8. SQLServer 游标简介与使用说明[转]
  9. 数据驱动安全架构升级---“花瓶”模型迎来V5.0(二)
  10. 缘何Square可以在移动支付领域上成功?