печать HTML и вставка переменных с помощью python-flask

#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 настроить его перед отправкой в шаблон, но я надеюсь, что это поможет донести идею.