2013-05-01 45 views
0

我是新的框架框架,我刚刚创建了应用程序,但现在我正在用烧瓶中的数据库连接挣扎。我想用MySQL连接我的应用程序。为此,我按照此链接http://flask.pocoo.org/snippets/11/,但我无法连接数据库。 我的代码如下:Flask框架中的数据库连接问题

from flask import Flask , render_template,g 
from torndb import Connection 

app=Flask(__name__) 


@app.before_request 
def connect_db(): 
    g.db = Connection(DB_HOST="localhost", 
         DB_NAME="flask", 
         DB_USER="root", 
         DB_PASSWD="ghrix321") 


@app.route('/') 
def home(): 
    rows = g.db.iter("select * from user") 
    return render_template('home.html',rows=rows) 

类型错误:初始化()得到了一个意想不到的关键字参数 'DB_NAME'。

所以请给我建议一些方法,以便我可以连接数据库并从那里获取数据。 谢谢

回答

1

您引用的代码段不使用关键字参数。

torndb的文档是http://torndb.readthedocs.org/en/latest/。如果您使用关键字参数,则必须按照它们在函数定义中的名称命名它们。 这是正确的调用:

g.db = Connection('localhost','flask', user='root', password='ghrix321') 

顺便说一句,使用专用的用户在数据库中,并没有硬编码密码到应用程序,使用一个配置文件为。

+0

感谢您的回答,实际上我发现问题并按照您的建议以这种方式编写,但之后我得到此错误**没有模块命名_mysql **在一些研发后,我发现它是由于mysqlDB,但我已经安装了,但我在虚拟环境中使用瓶。所以可能是这个问题,所以你可以提供一些关于 – user2328484 2013-05-01 12:25:23

+0

的帮助默认情况下创建virtualenvs而不访问系统包。所以无论你需要什么,你应该安装在那个venv。 将您的依赖关系保存在requirements.txt文件中,您可以使用'pip install -r requirements.txt'设置一个新的virtualenv。 – 2013-05-01 12:46:58

+0

为了给您提供更多的信息,有文档:http://www.pip-installer .ORG/EN /最新/ requirements.html – 2013-05-01 13:10:16