Python3教程Web开发实战梳理-day7(编写MVC)
来源:互联网 发布:淘宝怎么代理充话费 编辑:程序博客网 时间:2024/06/01 07:14
Day7:编写MVC
通过前面几天的的努力,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, asynciofrom coroweb import get, postfrom models import User, Comment, Blog, next_id@get('/')async def index(request): users = await User.findAll() return { '__template__': 'test.html', 'users': users }
‘_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
阅读全文
0 0
- Python3教程Web开发实战梳理-day7(编写MVC)
- Python3教程Web开发实战梳理-day3(编写ORM)
- Python3教程Web开发实战梳理-day4(编写Model)
- Python3教程Web开发实战梳理-day9(编写API)
- Python廖雪峰实战web开发(Day7-编写MVC)
- Python3教程Web开发实战梳理-day11(编写日志创建页MVVC)
- Python3教程Web开发实战梳理-day12(编写日志列表页)
- Python3教程Web开发实战梳理-day5(Web框架)
- Python3教程Web开发实战梳理-day6(配置文件)
- Python3教程Web开发实战梳理-day8(构建前端)
- Python3教程Web开发实战梳理-day1+day2(开发环境与基本骨架)
- Python3教程Web开发实战梳理-day10(用户注册和登录)
- Python廖雪峰实战web开发(Day3-编写ORM)
- Python廖雪峰实战web开发(day4-编写Model)
- 《python》学习笔记(Day7),采用MVC模式的Web应用例子(续)
- Day7(上).二级指针实战
- Web前端开发工程师实战培训教程
- Web前端开发工程师实战培训教程
- HDU1009 解题报告
- caffe tutorial
- CentOS7 防火墙关闭
- 头指针链表数据插入方式----头插和尾插
- MySql数据库事务正常提交,回滚失败
- Python3教程Web开发实战梳理-day7(编写MVC)
- manacher算法
- html中的块级元素、行内块元素和行内元素
- 攻城狮的 day01
- 自考导图|软件开发工具
- hdu 1081 To The MAX
- LeetCode 209. Minimum Size Subarray Sum
- HDU5057-Argestes and Sequence(分块&&树状数组)
- Hello World