πŸ“Έ Как вывСсти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Django: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Django, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π³ <img> Π² шаблонС HTML. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

        <img src="{{ ваша_пСрСмСнная_с_URL_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ }}" alt="ОписаниС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ">
    
Π—Π΄Π΅ΡΡŒ {{ ваша_пСрСмСнная_с_URL_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ }} - это пСрСмСнная Π² контСкстС вашСго прСдставлСния (view), содСрТащая URL-адрСс ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π° "ОписаниС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ" - это тСкстовоС описаниС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ, Ссли ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π½Π΅ загрузится. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΈ Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° доступна ΠΏΠΎ этому URL-адрСсу. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Django ΠΏΡƒΡ‚ΡŒ ΠΊ статичСским Ρ„Π°ΠΉΠ»Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ изобраТСния, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ указываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° {% load static %}. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ этот Ρ‚Π΅Π³, ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

        <img src="{% static 'ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅.jpg' %}" alt="ОписаниС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ">
    
НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ 'ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅.jpg' Π½Π° фактичСский ΠΏΡƒΡ‚ΡŒ ΠΊ вашСй ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. Π£Π΄Π°Ρ‡ΠΈ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Django!

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как вывСсти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Django

Π’ Django Π΅ΡΡ‚ΡŒ нСсколько способов Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° Π²Π΅Π±-страницу. НиТС ΠΌΡ‹ рассмотрим Π΄Π²Π° основных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°: с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ с использованиСм статичСских Ρ„Π°ΠΉΠ»ΠΎΠ².

1. Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ располоТСнии изобраТСния Π² модСлях Django ΠΈ Π·Π°Ρ‚Π΅ΠΌ вывСсти Π΅Π³ΠΎ Π½Π° страницС.

Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ модСль, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅. НапримСр, ΠΌΡ‹ создадим модСль "Image", которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ "image" Ρ‚ΠΈΠΏΠ° "ImageField" для хранСния самого изобраТСния:


    from django.db import models

    class Image(models.Model):
        image = models.ImageField(upload_to='images/')
    

Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ:


    from django import forms

    class ImageForm(forms.ModelForm):
        class Meta:
            model = Image
            fields = ('image',)
    

Π¨Π°Π³ 3: Π’ прСдставлСнии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ сохранитС Π΅Π΅:


    def upload_image(request):
        if request.method == 'POST':
            form = ImageForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
        else:
            form = ImageForm()
        return render(request, 'upload_image.html', {'form': form})
    

Π¨Π°Π³ 4: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ шаблон "upload_image.html", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ:


    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ</button>
    </form>
    

Π¨Π°Π³ 5: НаконСц, Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° страницС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ URL-адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ создан автоматичСски ΠΏΡ€ΠΈ сохранСнии ΠΌΠΎΠ΄Π΅Π»ΠΈ:


    <img src="{{ image.image.url }}" alt="Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅">
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ сохранСна Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π²Ρ‹ смоТСтС Π΅Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π° страницС.

2. Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ с использованиСм статичСских Ρ„Π°ΠΉΠ»ΠΎΠ²

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· URL.

Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ "static" Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Django, Ссли Π΅Π΅ Π΅Ρ‰Π΅ Π½Π΅Ρ‚.

Π¨Π°Π³ 2: ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ вашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΏΠΊΡƒ "static".

Π¨Π°Π³ 3: Π’ вашСм шаблонС Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π² ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ°ΠΏΠΊΠΈ статичСских Ρ„Π°ΠΉΠ»ΠΎΠ²:


    <img src="{% static 'images/your_image.jpg' %}" alt="Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅">
    

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ находится Π² ΠΏΠ°ΠΏΠΊΠ΅ "images" Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ "static". Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш ΠΏΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ располоТСниС изобраТСния.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ основныС способы Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π² Django. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ красочныС изобраТСния Π½Π° ваши Π²Π΅Π±-страницы!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ (ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ )Π² Django Python

Django 11: Учимся Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° сайт ΠΈ пишСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ пост Π² Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠ³

[2] Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Django (Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π½Π° Python [Django])

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ“Έ Как вывСсти ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Django: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

πŸ‘©β€πŸ’»ΠšΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Bootstrap Π² Django: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΈ Π»Π΅Π³ΠΊΠΈΠ΅ шаги