from sanic import Sanic
from sanic.response import text, html, json
from jinja2 import Template
import uvloop
import asyncpg
import asyncio_redis
loop = uvloop.new_event_loop()
# 初始pg连接池
async def init_pgpool():
return await asyncpg.create_pool(database="postgres", user="postgres", password="asdf", loop=loop)
conn_pool = loop.run_until_complete(init_pgpool())
# 初始redis连接池
async def init_rdspool():
return await asyncio_redis.Pool.create(loop=loop)
redis = loop.run_until_complete(init_rdspool())
indexTpl = Template('hello {{ name }}')
app = Sanic(__name__)
@app.route('/')
async def index(req):
name = req.args.get('name')
if name is None:
name = 'unknow'
return html(indexTpl.render(name=name))
@app.route('/pg')
async def test(req):
await redis.set('sanic_', "fuck")
async with conn_pool.acquire() as conn:
# async with conn.transaction():
# async for record in conn.cursor('select * from temp'):
# print(record)
vs = await conn.fetch('select * from temp')
page = ''
for v in vs:
page += 'name:{:8} value:{}\n'.format(v['name'], v['addr'])
print(await redis.get('sanic_'))
return text(page)
app.run(port=8089, loop=loop)
sanic数据库、缓存、模板
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我们的目的是让缓存,也就是默认的 Redis 存储到 0 号数据库,Session 存储在 1 号数据库。 配置 ...