#python #html #flask #pymongo
#python #HTML #flask #pymongo
Вопрос:
Я пытаюсь напечатать html-код, который также будет включать переменные, в данном случае его данные из базы данных с помощью этого кода:
def displayHot():
myCursor = mongo.db.posts.find()
for result_object in myCursor:
print'''
Content-Type: text/html
<div class="card-header">
<h3 %s
</h3>
</div>
<div class="card-block">
<p> %s
</p>
<a class="panel-google-plus-image" href="{{url_for('Images', filename = 'Images/%s')}}"
</a>
</div"
''' % (result_object['uploader'], result_object['description'], result_object['file_name'])
и визуализация его здесь:
@app.route('/', methods=['POST','GET'])
def home():
if request.method == 'GET':
return render_template('index.html', function = displayHot())
когда я запускаю его, я получаю распечатанные данные в своем cmd.. итак, мой вопрос в том, как я могу распечатать html-код, чтобы он действовал как html-код, а не просто команда печати в cmd
Комментарии:
1. Если вам нужно использовать что-то вне функции, вам нужно вернуть это, а не распечатать.
2. Ваш отступ в функции displayHot неверен. Не могли бы вы показать свои печатные данные и index.html ?
Ответ №1:
Похоже, вам было бы лучше выполнить цикл в шаблоне jinja и просто отправить шаблону данные для цикла. Что-то вроде этого — это то, о чем я думаю:
Код на Python
@app.route('/', methods=['POST','GET'])
def home():
if request.method == 'GET':
myCursor = mongo.db.posts.find()
return render_template('index.html', cursor = myCursor)
index.html
<!-- your other code here -->
{% for result_object in cursor %}
<div class="card-header">
<h3> {{result_object['uploader']}}
</h3>
</div>
<div class="card-block">
<p> {{result_object['description']}}
</p>
<a class="panel-google-plus-image" href="{{url_for('Images', filename = '''Images/result_object['file_name']''')}}"
</a>
</div>
{% endfor %}
<!-- the rest of your html -->
Это упрощено, и вам, вероятно, потребуется сделать больше, чтобы правильно myCursor
настроить его перед отправкой в шаблон, но я надеюсь, что это поможет донести идею.