2015-01-28 2 views
1

Когда я запускаю следующий простой кусок python/flask, я не получаю всю строку, переданную на html-страницу, вместо «hello this is simon» я получаю «привет», Я работаю над Python 3.4.2Строковые литералы усекаются с использованием фляжки в python 3.4

Я думал, что это может быть связано с кодировкой, но я пробовал все, что я могу придумать, с кодировкой и до сих пор не радуя. Любая помощь с благодарностью получил :)

Это питон файл (testit.py)

from flask import Flask, render_template 

app = Flask(__name__) 

@app.route("/") 
def init_logon(): 
    email = "hello this is simon" 
    return render_template("testit.html", email=email) 

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

Это простой шаблон (testit.html)

<!DOCTYPE html> 
<html> 
<head lang="en"> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
    <p> 
     <label for="email">Email</label> 
     <input type="text" name="email" id="email" value={{ email }}> 
    </p> 
</body> 
</html> 

из положить от ряда браузеров все одинаково: текст усечен в первом пробеле

Все, что отображается в моем браузере:

«привет» - ни один из текста после первого пустого пространства не проходит через

извинений я не разрешено размещать изображения я создал :(

+0

Спасибо! Я искал часы! –

ответ

2

В вашем HTML, вы не процитировать атрибут значение, так что результат вашего шаблона

<input type="text" name="email" id="email" value=hello this is simon> 

это означает, что только «привет» является значением атрибута «значение». Вы должны увидеть это, если посмотрите на источник сгенерированной страницы.

Вы можете изменить свой шаблон, чтобы он имел value="{{ email }}".

Смежные вопросы