【发布时间】:2015-04-05 20:37:52
【问题描述】:
设置和代码:
我正在构建一个带有 AngularJS 前端的基本 Flask 应用程序,目前我需要连接到我使用 Godaddy phpmyadmin 托管的 MySQL 数据库。
这是我__init__.py的一部分
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
# Create instnace called app
app = Flask(__name__)
app.config['SQLAlchemy_DATABASE_URI'] = 'mysql://username:password#@xxxxxx.hostedresource.com/dbname'
# Create SQLAlchemy object
db = SQLAlchemy(app)
# ...
这是我的models.py
from app import app, db
class UsersPy(db.Model):
__tablename__ = "userspy"
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String, nullable=False)
password = db.Column(db.String, nullable=False)
def __init__(self, username, password):
self.username = username
self.password = password
def __repr__(self):
return '<title {}'.format(self.username)
这是我views.py中的一个sn-p:
from app import app, db
from app.models import UsersPy
from flask import render_template, request, redirect, url_for, jsonify, session, flash
@app.route('/testdb/')
def testdb():
admin = UsersPy('user1', 'password1')
guest = UsersPy('user2', 'password2')
db.session.add(admin)
db.session.add(guest)
#db.session.merge(admin)
#db.session.merge(guest)
db.session.commit()
results = UsersPy.query.all()
json_results = []
for result in results:
d = {'username': result.username,
'password': result.password}
json_results.append(d)
return jsonify(items=json_results)
问题:
所有这些都运行良好,当您访问 /testdb/ 位置时,用户被“创建”并以 JSON 格式显示回来,但是 Godaddy 托管的实际数据库没有更新,因此不能建立真正的连接或者由于某种原因它失败了。我已经创建了 userspy 数据库表,但是 add() 和 commit() 函数实际上并没有将用户添加到数据库中。我不知道如何巩固 SQLAlchemy 和 MySQL 数据库之间的连接。任何帮助表示赞赏,谢谢。
【问题讨论】:
标签: python mysql angularjs flask sqlalchemy