oracleデータベースでSQLAlchemyを呼び出してFlaskでドロップダウンを設定しようとしています。 データベースのテーブルには1つの列 'VALUE'があり、その値がドロップダウンリストを構成します。 私はエラーに実行しています: とValueError:ここに欠けているものでSQLAlchemy/Flaskドロップダウンリストエラーを埋め込む
任意のアイデアを解凍するために1つの値以上が必要? I print updatef
oracleデータベースでSQLAlchemyを呼び出してFlaskでドロップダウンを設定しようとしています。 データベースのテーブルには1つの列 'VALUE'があり、その値がドロップダウンリストを構成します。 私はエラーに実行しています: とValueError:ここに欠けているものでSQLAlchemy/Flaskドロップダウンリストエラーを埋め込む
任意のアイデアを解凍するために1つの値以上が必要? I print updatef
私は、このエラーはSQLAlchemyのクエリ結果のあなたのミスハンドルによって引き起こされると考えられる場合
<label for="updates">Update Frequency {{ form.updates}}</label>
engine = create_engine('oracle+cx_oracle://user:[email protected]/')
connection = engine.connect()
Base= declarative_base()
GP_DD_UPDATE_FREQ = Table('GP_DD_UPDATE_FREQ', Base.metadata,
Column('VALUE', String(20)))
class Dropdown():
s = select([GP_DD_UPDATE_FREQ.c.VALUE])
result = connection.execute(s)
ape = [row for row in result ]
updatef = Updatefreq.ape
class ReusableForm(Form):
updates = SelectField('Update:', coerce=int, choices = updatef)
@app.route("/editor", methods=['GET', 'POST'])
def hello():
form = ReusableForm(request.form) # calls on form
if request.method == 'POST':
updates = request.form['updates']
hello.htmlまた、値のリストがうまく読み込まれます。クラスでDropdown
class Dropdown():
s = select([GP_DD_UPDATE_FREQ.c.VALUE])
result = connection.execute(s)
ape = [row for row in result ]
result
SQLAlchemyのクエリの実行です。そしてそれはResultProxyオブジェクトです。このResultProxy
オブジェクトは反復可能であり、反復するときの各要素はタプルです。 SELECT
クエリがテーブルの1つの列のみをフェッチする場合でも、返される各行はscalar
の代わりにtuple
と表されます。
VALUE
-------
1
2
3
クエリの返された結果は以下のように表される:
(1,)
(2,)
(3,)
あなたはResultProxyクラスは多くを提供していることに気づくかもしれ
たとえば、あなたのテーブルの列VALUE
は次のようであると仮定
fetchall(), return [(1,), (2,), (3,)], a list of tuple
fetchone(), return (1,), a tuple (first time call)
fetchmany(2), return [(1,), (2,)], a list of tuple
first(), return (1,), a tuple
scalar(), return 1, a scalar
あなたのアプリケーションでは、あなたの代わりに
ape = [row for row in result]
の、スカラーのリストが欲しいあなたは
ape = [row[0] for row in result]
それとも
ape = [first_of_row for first_of_row, in result]
を使用する必要があり、この図は答えることができる願っています。 ありがとう!
これは間違いなく以前のタプルを表示できたので、これは間違いなく正しい行に沿っています。私はあなたの最後の2つの提案を試して、エラーを取得しようとしています: ValueError:アンパックする値が多すぎます – Infinity8
'updatef = Updatefreq.ape'の値は何ですか? – rojeeer
はい、それは ['連続'、 '毎日'、 '週2回'、 '月間'、 '四半期'、 '年2回'、 '毎年'、 'asNeeded'、 '不規則'、 'notPlanned '、' unknown '] – Infinity8