πŸ“Έ Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° сайт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° сайт с использованиСм Python: Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python requests для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° ваш сайт. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

import requests

# ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΡ‡Ρ‚ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅
with open('ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅.jpg', 'rb') as image:
    # Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ POST-запрос для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ
    response = requests.post('ΡƒΡ€Π»_для_Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ', files={'file': image})

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ
if response.status_code == 200:
    print('ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π½Π° сайт')
else:
    print('Ошибка ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° сайт')
Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ 'ΠΏΡƒΡ‚ΡŒ_ΠΊ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅.jpg' Π½Π° ΠΏΡƒΡ‚ΡŒ ΠΊ вашСй ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΈ 'ΡƒΡ€Π»_для_Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ_ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ' Π½Π° URL вашСго сайта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ.

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

Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° сайт Π² Python

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° Π²Π΅Π±-сайт Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнута с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ². Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Π΄Π²Π° основных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят Π²Π°ΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ изобраТСния Π½Π° ваш сайт.

1. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Flask

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Flask для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вашСго сайта, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ возмоТностями для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° Π²Π΅Π±-сайт с использованиСм Flask:


from flask import Flask, request, redirect, url_for
from werkzeug.utils import secure_filename

app = Flask(__name__)

# Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ
app.config['UPLOAD_FOLDER'] = '/ΠΏΡƒΡ‚ΡŒ/ΠΊ/ΠΏΠ°ΠΏΠΊΠ΅'

# Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}

def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

@app.route('/upload', methods=['POST'])
def upload_file():
    if request.method == 'POST':
        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½
        if 'file' not in request.files:
            return redirect(request.url)
        file = request.files['file']
        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ допустимоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
        if file and allowed_file(file.filename):
            # БСзопасноС сохранСниС Ρ„Π°ΠΉΠ»Π°
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            return 'Π€Π°ΠΉΠ» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½'
        else:
            return 'НСдопустимый Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°'
    return '''
''' if __name__ == '__main__': app.run(debug=True)

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Django

Если Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π²Π΅Π±-сайт с использованиСм Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Django, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Django.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½Π° Π²Π΅Π±-сайт с использованиСм Django:


from django.shortcuts import render, redirect
from .forms import ImageForm

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

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ понадобится шаблон HTML (upload_image.html) ΠΈ модСль Ρ„ΠΎΡ€ΠΌΡ‹ (ImageForm) для использования этого ΠΊΠΎΠ΄Π°.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Π΄Π²Π° основных способа Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ Π½Π° Π²Π΅Π±-сайт Π² Python. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вашСго сайта - Flask ΠΈΠ»ΠΈ Django.

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

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

Как ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

Π£Ρ€ΠΎΠΊΠΈ Python / ΠœΠΎΠ΄ΡƒΠ»ΡŒ tkinter (Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°ΠΌΠΈ)

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

Как ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? πŸ”„πŸ’» ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ сортировки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python

πŸ”§ Как ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ с C Π½Π° Python: пошаговоС руководство для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

πŸΠŸΠΈΡ‚ΠΎΠ½ ΠΈΠ»ΠΈ Π°Π½Π°ΠΊΠΎΠ½Π΄Π° – Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?🐍

πŸ“Έ Как Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π½Π° сайт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

πŸš€ Как ΡΡ‚Π°Ρ‚ΡŒ программистом Python с нуля: ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π³ΠΈΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!

πŸ” Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ класс Π² классС python: простой ΠΈ экономный способ

πŸ” Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ равСнство символов Π² Python?