Python 的功能十分强大,因其强大而丰富的开源包,让其可以实现高级爬虫,可以实现机器学习算法,可以应用到深度学习中,也可以开发Web App 项目。
本次的Python实战就是Web App 项目的开发,项目素材和代码大部分来源于廖雪峰老师的python教程,一共为期16天,博主会对代码做详细的讲解,包括代码的详细注释和原理;博主在实战这个项目过程中,发现廖雪峰老师的代码是比较早的了,python的更新是十分快速的,因此博主也会对此做出更新和讲解。
由于我们的Web App建立在 asyncio 的基础上,因此用 aiohttp 写一个基本的 app.py ,以下是廖雪峰老师教程中的代码,但是存在很多问题,
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'Awesome
')
@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()
下面是我个人的实现代码,这也是报警告信息中提供的一种方式,相对简单很多。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time : 2019/1/9 11:15
# @Author : Arrow and Bullet
# @FileName: app.py
# @Software: PyCharm
# @Blog :https://blog.csdn.net/qq_41800366
import logging # 导入logging模块
from aiohttp import web
logging.basicConfig(level=logging.INFO) # 配置logging的基本信息, level=logging.INFO,记录INFO及以上的日志
def index(request):
return web.Response(body='AWesome
'.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=9000)
logging.info('server started at http://127.0.0.1:9000...')
init()
运行python app.py,Web App将在9000端口监听HTTP请求,并且对首页/进行响应。
======== Running on http://127.0.0.1:9000 ========
(Press CTRL+C to quit)
这里我们简单地返回一个Awesome字符串,在浏览器中可以看到效果:
这说明我们的Web App骨架已经搭好了,可以进一步往里面添加更多的东西。
下面连接是在搭建骨架中用到的模块详解,可点击查看
Python中 logging 模块 详解
Python中 asyncio 模块 详解
点击查看:搭建开发环境——Python实战:Web App 开发 Day 01
希望能够帮助到大家,有什么问题可以 直接评论即可,喜欢有用的话可以点个赞让更多的人看到,如果不够详细的话也可以说,我会及时回复的。