python aiohttp_Python利用Aiohttp构建异步企业网站

闲来无事,决定用Python建个简单的企业网站;

为省时间,决定照着一个网站做,原站点效果如下:

原企业网站效果图

满大街的Flask, Django实在没什么兴趣,前些日发现Aiohttp不但能做客户端,还能做服务端,顿时觉得高大上有木有。

异步网站,性能秒杀人Flask, 之前做爬虫用Aiohttp爬取一网站的文章目录,用requests是70秒左右,用Aiohttp Client是7.6秒左右,性能简直就是

小恐龙阿贡啊!

废话和说,说干就干:

一、环境要求:

Python 3.5以上pip install aiohttppip install cchardetpip install sqlalchemypip install aiohttp_jinja2pip install jinja2pip install aiomysql打开目标网站,F12将原站点的css,js文件全部保存至static下相应的文件夹

二、网站结构:

网站文档组织基本结构

二、视图函数 view.py

import aiohttp_jinja2

import db

@aiohttp_jinja2.template('index.html')

async def index(request):

return {'title':'XXXX有限公司',

'welcome':'您好,欢迎来XXXX有限公司!',

'tel':'XXXXXX'}

三、路由函数 routes.py

import pathlib

from views import index

PROJECT_ROOT = pathlib.Path(__file__).parentdef setup_routes(app):app.router.add_get('/', index) setup_static_routes(app)def setup_static_routes(app): app.router.add_static('/static/', path=PROJECT_ROOT / 'static', name='static')

四、主函数 main.py

import asyncioimport aiohttp_jinja2import jinja2from aiohttp import webfrom routes import setup_routesif __name__=='__main__':app=web.Application() aiohttp_jinja2.setup( app, loader=jinja2. FileSystemLoader('./templates')) setup_routes(app) web.run_app(app, host='127.0.0.1', port=8080)

五、模板index.html(部分代码),是不是发现跟Flask很像, Flask用的是url_for.

{{ title }}

六、数据库支持(mysql)

DB_CONFIG = {'host':'127.0.0.1', 'port':3306, 'user':'root', 'password':'', 'db':'company', 'charset':'utf8mb4', # 'cursorclass':pymysql.cursors.DictCursor }

async def test(loop):DB_CONFIG['loop']=loop async with aiomysql.create_pool(**DB_CONFIG) as pool: async with pool.get() as conn: async with conn.cursor() as cur: sql="select * from company_table limit 100" await cur.execute(sql) data=await cur.fetchall() for item in data: print(item)

#以下是数据库连接调用方法

if __name__=='__main__':loop=asyncio.get_event_loop() loop.run_until_complete(test(loop))

七、运行后图片:

运行成功后网站的源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值