Loading...
Поддержать проект

Если вам нравится наш проект, вы можете поддержать его развитие:

Поддержать
В процессе

Что выбрать Django или Flask?

Аватар пользователя Артем
Артем
126 1 2 месяца назад

Помогите с выбором между Django и Flask? какой фреймворк круче для веб сайта?

Войдите или зарегистрируйтесь, чтобы оставить ответ

Ответы 1

Аватар пользователя Александр
Александр

Flask:

Легковесный и простой в изучении Минималистичный подход Отлично подходит для небольших и средних проектов Большая гибкость в выборе структуры проекта Быстрый старт разработки Отлично работает на Replit.

Django:

Полноценный фреймворк "из коробки"Встроенная админ-панель ORM для работы с базой данных Более строгая структура проекта Больше встроенных инструментов Требует больше времени на изучение

Рекомендация:

Используйте Flask если: У вас небольшой/средний проект Нужна гибкость в архитектуре Важна простота изучения Разрабатываете API Используйте Django если: У вас крупный проект Нужна админ-панель Важна работа с БД из коробки Нужна готовая архитектура

Для большинства проектов я бы рекомендовал начать с Flask из-за его простоты и легкости развертывания.

Пример Django приложения:

# settings.py
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = 'your-secret-key'
DEBUG = True
ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'myproject.urls'
WSGI_APPLICATION = 'myproject.wsgi.application'

# views.py
from django.shortcuts import render
from django.http import HttpResponse

def home(request):
    return render(request, 'home.html', {'message': 'Привет от Django!'})

def about(request):
    return HttpResponse('Страница о нас')

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('about/', views.about, name='about'),
]

Пример Flask приложения:

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)

# Простая база данных в памяти
todos = []

@app.route('/')
def home():
    return render_template('index.html', todos=todos)

@app.route('/add', methods=['POST'])
def add_todo():
    todo = request.form.get('todo')
    if todo:
        todos.append(todo)
    return redirect(url_for('home'))

@app.route('/delete/<int:index>')
def delete_todo(index):
    if 0 <= index < len(todos):
        todos.pop(index)
    return redirect(url_for('home'))

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)

# HTML шаблон (templates/index.html):
"""
<!DOCTYPE html>
<html>
<head>
    <title>Todo App</title>
</head>
<body>
    <h1>Список задач</h1>
    
    <form action="/add" method="post">
        <input type="text" name="todo" required>
        <button type="submit">Добавить</button>
    </form>
    
    <ul>
        {% for todo in todos %}
        <li>
            {{ todo }}
            <a href="/delete/{{ loop.index0 }}">Удалить</a>
        </li>
        {% endfor %}
    </ul>
</body>
</html>
"""
Реклама