Python3教程Web开发实战梳理-day7(看着不错)
通過(guò)前面幾天的的努力,ORM框架、Web框架和配置都已就緒,我們可以開(kāi)始編寫(xiě)一個(gè)最簡(jiǎn)單的MVC,把它們?nèi)繂?dòng)起來(lái)。
MVC:Model-View-Controller,中文名“模型-視圖-控制器”。
其中Python處理的URL函數(shù)就是C:Controller,Controller主要負(fù)責(zé)業(yè)務(wù)邏輯,比如檢查用戶(hù)名是否存在,取出用戶(hù)信息等等;
而View負(fù)責(zé)顯示邏輯,通過(guò)一些簡(jiǎn)單的替換變量,View生成最終用戶(hù)看到的HTML,那View實(shí)質(zhì)就是HTML模板(如Django等),而在本次Web開(kāi)發(fā)就是Jinja2模板;
Model是用來(lái)傳給View的,這樣View在替換變量的時(shí)候,就可以從Model中取出相應(yīng)的數(shù)據(jù)。
通過(guò)Web框架的@get和ORM框架的Model支持,可以很容易地編寫(xiě)一個(gè)處理首頁(yè)URL的函數(shù)
新建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,其他參數(shù)是傳遞給模板的數(shù)據(jù),所以我們?cè)谀0宓母夸泃emplates下創(chuàng)建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>
這個(gè)html中邏輯部分用花括號(hào){和百分號(hào)%來(lái)嵌套,這是jinja2模板的規(guī)范
和前段時(shí)間學(xué)習(xí)的Java中的JSP有些相似
接下來(lái),運(yùn)行app.py啟動(dòng)服務(wù)器,在瀏覽器訪問(wèn)
localhost:9000/
應(yīng)該可以看到你的數(shù)據(jù)庫(kù)表中users中存儲(chǔ)的數(shù)據(jù),如果沒(méi)有的話可以自己手動(dòng)添加幾天記錄再試一下。
這就是一個(gè)簡(jiǎn)單的MVC
————————————————
版權(quán)聲明:本文為CSDN博主「永無(wú)鄉(xiāng)」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/josephpai/article/details/76037662
總結(jié)
以上是生活随笔為你收集整理的Python3教程Web开发实战梳理-day7(看着不错)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 蟹黄味瓜子仁适合哪些人群享用?蟹黄味瓜子
- 下一篇: websocket python爬虫_p