2016-12-30 40 views
-2

我燒瓶應用正在輸出「沒有內容」爲for()塊(所提供的文件/路徑(應用程序)似乎並不存在),我不知道爲什麼。瓶應用程序將不會加載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樣子。

下面是我index.htmltemplates/

<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> 

我檢查了查詢,並返回像預期的輸出:

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 

如果我試圖通過運行export FLASK APP=app.py', then燒瓶運行重新啓動開發服務器`,我得到一個錯誤:

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運行 - 這也給出了相同的錯誤。

思考如何解決?

回答

1

你沒有得到你的模板什麼叫blogposts。您需要使用關鍵字參數來傳遞數據:

return render_template('index.html', blogposts=blogposts) 

另外請注意,你應該真正做到裏面的功能是查詢,否則將永遠只能在執行過程開始,你將永遠有相同的三個職位。

+0

大後,我得到一個錯誤,當我運行'出口FLASK_APP = app.py',然後'燒瓶運行'它給了我一個錯誤'錯誤:提供的文件/路徑(app)似乎不存在'的想法? – Jshee

+0

對不起,我不明白這個問題。你顯然已經知道它運行之前,有什麼改變? –

+0

我知道,但是在我改變了這個添加'blogposts = blogposts'後,它開始了這個。重申,當我運行'出口FLASK_APP = app.py'然後'燒瓶運行'在我的本地主機上運行它,它給了我那個錯誤 – Jshee

0

我有同樣的問題。我解決了它作爲終端到該文件夾​​的更改目錄包含app.py然後運行

export FLASK_APP=app.py 

那麼,你應該運行

python -m flask run 
相關問題