私のフラスコアプリはfor()
ブロックの 'no content'を出力しています。Flask Appはapp.pyをロードしません(提供されたファイル/パスは存在しません)
私はここで、app.py
で私のクエリをテストしたがapp.py
です:
# mysql config
app.config['MYSQL_DATABASE_USER'] = 'user'
app.config['MYSQL_DATABASE_PASSWORD'] = 'mypass'
app.config['MYSQL_DATABASE_DB'] = 'mydbname'
app.config['MYSQL_DATABASE_HOST'] = 'xxx.xxx.xxx.xxx'
mysql = MySQL()
mysql.init_app(app)
c = mysql.connect().cursor()
blogposts = c.execute("SELECT post_title, post_name FROM mydbname.wp_posts WHERE post_status='publish' ORDER BY RAND() LIMIT 3")
@app.route('/', methods=('GET', 'POST'))
def email():
form = EmailForm()
if request.method == 'POST':
if form.validate() == False:
return 'Please fill in all fields <p><a href="/">Try Again</a></p>'
else:
msg = Message("Message from your visitor",
sender='[email protected]',
recipients=['[email protected]'])
msg.body = """
From: %s
""" % (form.email.data)
mail.send(msg)
#return "Successfully sent message!"
return render_template('email_submit_thankyou.html')
elif request.method == 'GET':
return render_template('index.html', blogposts)
これは私のapp.py
がどのように見えるかです。以下は
templates/
の私index.html
です:
<ul>
{% for blogpost in blogposts %}
<li><a href="{{blogpost[1]}}">{{blogpost[0]}}</a></li>
{% else %}
<li>no content...</li>
{% endfor %}
<div class="clearL"> </div>
</ul>
私は、クエリをチェックし、それは次のように所望の出力を返します:私はexport FLASK APP=app.py', then
フラスコの実行を実行してのdevのサーバーを再起動しようとした場合
ID post_title post_name
1 a title here a-title-here
2 a title here2 a-title-here2
3 a title here3 a-title-here3
`、私は次のエラーを受け取ります:
Error: The file/path provided (app) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py
export FLASK_APP=app.py
からpython -m flask run
で実行しようとしました。これも同じエラーが発生します。
解決方法についての考え方はありますか?
偉大なポストを実行する必要があります私は、エクスポートを実行したとき、私は 'エラーを取得していますFLASK_APP = app.py'を実行した後、 'フラスコを走らせる' 'エラー:ファイル/パスの提供(アプリケーション)が存在しないようです 'というエラーが表示されますか? – Jshee
申し訳ありませんが、私はその質問を理解していません。あなたは明らかにそれを前に走らせました、何が変わったのですか? –
私は知っていますが、これを変更した後、 'blogposts = blogposts'がこれを開始しました。 'export FLASK_APP = app.py'を実行し、次に' localhost 'で実行するために 'flask run'を実行すると、エラーが返されます。 – Jshee