设为首页 收藏本站
查看: 1687|回复: 0

[经验分享] Sanic 连接postgresql数据库

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-13 08:18:16 | 显示全部楼层 |阅读模式
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.浏览器运行结果
QQ截图20161213081704.png


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-313451-1-1.html 上篇帖子: postgresql 使用指南 下篇帖子: Postgres_XL 简要安装配置说明 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表