Sanic如何连接postgresql数据库
admin
2023-05-29 16:01:56
0

1.安装系统包

# yum install postgresql-devel

2.安装Python包

peewee-2.8.5.tar.gz

psycopg2-2.6.2.tar.gz

1).安装peewee-async

# pip install peewee-async

Collecting peewee-async

  Downloading peewee_async-0.5.6-py3-none-any.whl

Requirement already satisfied: peewee>=2.8.0 in /usr/local/lib/python3.5/site-packages (from peewee-async)

Installing collected packages: peewee-async

Successfully installed peewee-async-0.5.6

#

2).安装aiopg

# pip install aiopg

Collecting aiopg

  Using cached aiopg-0.13.0-py3-none-any.whl

Requirement already satisfied: psycopg2>=2.5.2 in /usr/local/lib/python3.5/site-packages/psycopg2-2.6.2-py3.5-linux-x86_64.egg (from aiopg)

Installing collected packages: aiopg

Successfully installed aiopg-0.13.0

3.目录结构

/home/webapp

     |-- main.py

     |-- my_blueprint.py

     templates

        |-- index.html

4.文件内容:

1).main.py

# more main.py 

from sanic import Sanic

from my_blueprint import bp

app = Sanic(__name__)

app.blueprint(bp)

app.run(host='0.0.0.0', port=8000, debug=True)

2).my_blueprint.py

# more my_blueprint.py 

from sanic import Blueprint

from sanic.response import json, text, html

## Jinja2 template ####

from jinja2 import Environment, PackageLoader

env = Environment(loader=PackageLoader('my_blueprint', 'templates'))

## database ####

import uvloop, peewee

from peewee_async import PostgresqlDatabase

bp = Blueprint('my_blueprint')

# init db connection

global database

database = PostgresqlDatabase(database='webdb',

                              host='127.0.0.1',

                              user='postgres',

                              password='111111')

# router define

@bp.route('/')

async def bp_root(request):

    serialized_obj = []

    cursor = database.execute_sql('select * from t1;')

    for row in cursor.fetchall():

         serialized_obj.append({

            'id': row[0],

            'name': row[1]}

        )

    template = env.get_template('index.html')

    content=template.render(items=serialized_obj)

    return html(content)

#

3).index.html

# more index.html 

Sanic

 

 

   

   

 

  {% for item in items %}

   

   

   

 

   

  {% endfor %}

 

idname
` item`.`id ` ` item`.`name `

5.浏览器运行结果

Sanic如何连接postgresql数据库

相关内容

热门资讯

韩国能成功“自力更生”吗? 译者按2026年7月,韩国股市遭遇“黑色七月”——KOSPI单月暴跌33%,创历史之最,半导体双巨头...
起底浙江如是书院:导师为传销头... “每次上课,我感觉如坐针毡,但我不能说我想离开,不然我就出不来。”回忆在如是书院里待的一年时间,今年...
拿西瓜砸头、大盘鸡放不放土豆、... 用西瓜砸人者被警方拘留评论员 李家伟新闻天天发生,热点时时更新。但总有一些被困在那些事件里的意难平,...
香港保监局:中国居民境外投资收... 近期,中国内地居民购买香港保险是否以及如何缴纳个人所得税的问题受到关注。有报道称,北京、杭州等地税务...
美前国防官员撰文炒作“中国AI... 【环球网报道 记者 索炎琦】面对中国人工智能(AI)发展浪潮,美国一些政界人士、学者、媒体似乎愈感焦...
大模型开源加速AI渗透,软件产... 8月6日,A股三大指数涨跌互现,上证指数收于3900.35点,上涨0.57%;深证成指收于14110...
如何提升零碳园区的经济性? 来源:电联新媒 车行至北京亦庄凉水河畔,远远便望见两架高耸的白色风机在蓝天下缓缓转动。那是金风科技...
孙正义、贝佐斯、黄仁勋重金押注... 孙正义、贝佐斯、黄仁勋——三位全球科技与资本圈最具风向标意义的大佬,近来正不约而同地把重金押向同一个...
外交部警告日本:不要再次走向历... 新华社记者:1945年8月6日,美国在日本广岛上空投下第一颗原子弹,加速了二战结束的进程。81年后的...
涉台问题,麦考尔与鲁比奥谁能代... 围绕台湾问题,近期美国政界释放的信号呈现明显分化:一边是国务卿鲁比奥在专访中强调,中美一旦发生冲突,...