Как отобразить данные из скрипта Python в Django? - PullRequest
0 голосов
/ 08 октября 2019

Я создал программу, которая обрабатывает данные и сохраняет их в формате JSON.

Обычно, когда я хочу отобразить данные в Python, я использую этот код:

product_list = daily_deals()

for i in range(len(product_list)):
        print("Name: ", product_list[i]["name"])
        print("Price: ", product_list[i]["price"])
        print("Old Price: ", product_list[i]["old_price"])
        print("Link: ", product_list[i]["link"])
        print("Image: ", product_list[i]["img"])
        print()

Когда я хотел сделать то же самое в Django, я добавил скрипт в представление индекса (потому что данные будут отображаться на домашней странице)

views.py

def index(request):
    template = loader.get_template("search/index.html")

    daily_deals_list = daily_deals.deal_scraper
    return HttpResponse(template.render({}, request), daily_deals_list)

А затем в моем index.html:

{% for product in daily_deals_list %}
    <div class="deal-item">
       <a class="deal-product-link" href="{{ product.link }}" target="_blank">
       <div class="deal-img-block">
           <img class="deal-img" src="{{ product.img }}">
       </div>
       <p class="deal-product-name text-center">{{ product.name }}</p>
       <p class="deal-product-price text-center" style="color: orange;"> 
       <span class="deal-old-price" style="text-decoration:line-through;">{{ product.old_price }}</span>&emsp; {{ product.price }}</p>
       </a>
       </div>
{% endfor %}

Ответы [ 2 ]

2 голосов
/ 09 октября 2019

Вам, вероятно, нужно вызвать deal_scraper, поэтому вместо daily_deals.deal_scraper do daily_deals.deal_scraper()

1 голос
/ 09 октября 2019

При настройке шаблона вы устанавливаете пустой контекст, контекст по сути является диктовкой со всем содержимым, которое вы отправляете в шаблон, поэтому, если вы хотите иметь список с именем daily_deals_list, ваш код можетбыть намного проще:

def index(request):
    template = loader.get_template("search/index.html")
    return HttpResponse(template.render({
        "daily_deals_list": daily_deals()
    }, request))

(для вашего первого примера daily_deals() возвращает список продуктов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...