2.編寫Web App骨架——Python實戰

閱讀目錄:html

  1.開始編寫web

 

1.開始編寫

因爲咱們的Web App創建在 asyncio 的基礎上,所以用 aiohttp 寫一個基本的 app.py ,如下是廖雪峯老師教程中的代碼,可是存在不少問題,json

在web.Response(body=b’<h1>Awesome</h1>’) 中未設置轉碼和頭信息,致使最終點擊 http://127.0.0.1:9000 是一個二進制的文件下載;
app.make_handler() 這種方式已經太過於老舊,運行會報警告;
在aiohttp中使用yield from方式太過於老舊,若是實在要用下面代碼方式的話建議改成 async 和await。
感興趣的同窗能夠看看app

廖雪峯老師教程中的代碼:async

import logging; logging.basicConfig(level=logging.INFO)

import asyncio, os, json, time
from datetime import datetime

from aiohttp import web

def index(request):
    return web.Response(body=b'<h1>Awesome</h1>')

@asyncio.coroutine
def init(loop):
    app = web.Application(loop=loop)
    app.router.add_route('GET', '/', index)
    srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000)
    logging.info('server started at http://127.0.0.1:9000...')
    return srv

loop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()

 

我的:oop

import logging
from aiohttp import web

logging.basicConfig(level=logging.INFO) #配置logging的基本信息,level=logging.INFO,記錄INFO及以上的日誌

def index(request):
return web.Response(body='<h1>Awesome</h1>'.encode('utf-8'),content_type='text/html')

def init():
app = web.Application()
app.router.add_route('GET','/', index)
web.run_app(app,host='127.0.0.1',port=8000)
logging.info('server started at http://127.0.0.1:9001....')

init()

這說明咱們的Web App骨架已經搭好了,能夠進一步往裏面添加更多的東西。spa

相關文章
相關標籤/搜索