2015-07-04 19 views
2

我剛剛開始使用Flask進行遊戲,並且沒有以前的html/php經驗,所以請原諒我,如果這太天真了!HTML內的PHP無法使用Flask

我想在html文件中使用一些php來改善我已經構建的webapp,但是甚至無法獲得最簡單的測試用例。例如,從this site採取一個測試用例:

--test_app.py--

import flask 
app = flask.Flask('flask_test') 

@app.route('/') 
def test(): 
    return flask.render_template('test.html') 

if __name__ == '__main__': 
    app.run() 

--templates/test.html--

<html> 
<head></head> 
<body> 
<ul> 
<?php for($i=1;$i<=5;$i++){ ?> 
<li>Menu Item <?php echo $i; ?></li> 
<?php } ?> 
</ul> 
</body> 
</html> 

--expected output--

Menu Item 1 
Menu Item 2 
Menu Item 3 
Menu Item 4 
Menu Item 5 

--actual output--

Menu Item 

如果與Flask有內在的不兼容性?我是否忘記包含一些東西(無論是在python/flask方面還是在html/php方面),這些東西都可以一起工作?

謝謝!

+0

您是否嘗試將您的模板更改爲test.php而不是test.html? – am05mhz

+0

是的!同樣的結果。 –

+0

嗯,有什麼理由使用PHP與燒瓶?因爲燒瓶已經支持自己的模板解決方案 – am05mhz

回答

3

你不會在Flask中使用PHP。如果你想在你的模板一些腳本邏輯,使用這樣的:

<html> 
<head></head> 
<body> 
<ul> 
{% for i in range(1,6) %} 
<li>Menu Item {{ i }}</li> 
{% endfor %} 
</ul> 
</body> 
</html> 
0

回答到提問馬特·希利是正確的。

但看你的代碼,我似乎問題就應該是這樣的

<ul> 
<?php 
    for($i=1;$i<=5;$i++){ 
     echo "<li>Menu Item ".$i."</li>"; 
    } 
?> 
</ul> 

並確保您有.php作爲文件擴展名。因爲Php不會在HTML文件中運行。

0

PHP解釋器無法按照您希望使用的方式工作。 您正在調用燒瓶應用程序中的HTML(模板)文件,因此不使用PHP解釋器。 你最好堅持PHP和supportet模板例如。聰明,或去Pythonic。嘗試混合兩者是一個壞主意。