Criando um Blog Simples com Flask e Django em Python
Ambos permitem criar sites completos, mas cada um tem sua filosofia:
Flask é minimalista e flexível (você adiciona apenas o que precisar).
Django é completo e estruturado (traz tudo pronto: autenticação, ORM, templates, etc).
Neste artigo, vamos mostrar como criar um blog simples com cada um deles, comparando suas abordagens.
🔹 O que é um Blog no contexto do projeto?
Nosso blog terá funcionalidades básicas:
✔ Página inicial listando posts.
✔ Página individual para cada post.
✔ Estrutura simples para adicionar novos conteúdos.
Não será ainda um sistema completo com painel de administração, mas uma base sólida para expandir.
Criando um Blog Simples com Flask
1. Instalação do Flask
Crie um ambiente virtual e instale o Flask:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install flask
2. Estrutura inicial do projeto
blog_flask/
│── app.py
│── templates/
│ ├── index.html
│ ├── post.html
3. Código base do app.py
from flask import Flask, render_template
app = Flask(__name__)
# Posts simulados em uma lista (poderia vir de banco de dados)
posts = [
{"id": 1, "titulo": "Meu Primeiro Post", "conteudo": "Este é o conteúdo do primeiro post."},
{"id": 2, "titulo": "Aprendendo Flask", "conteudo": "Flask é ótimo para começar no desenvolvimento web."}
]
@app.route("/")
def home():
return render_template("index.html", posts=posts)
@app.route("/post/<int:id>")
def post(id):
post_encontrado = next((p for p in posts if p["id"] == id), None)
if post_encontrado:
return render_template("post.html", post=post_encontrado)
return "Post não encontrado", 404
if __name__ == "__main__":
app.run(debug=True)
4. Template index.html
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Blog com Flask</title>
</head>
<body>
<h1>📖 Meu Blog com Flask</h1>
<ul>
{% for post in posts %}
<li>
<a href="/post/{{ post.id }}">{{ post.titulo }}</a>
</li>
{% endfor %}
</ul>
</body>
</html>
5. Template post.html
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>{{ post.titulo }}</title>
</head>
<body>
<h1>{{ post.titulo }}</h1>
<p>{{ post.conteudo }}</p>
<a href="/">Voltar</a>
</body>
</html>
➡️ Agora você já tem um mini-blog com Flask rodando!
Criando um Blog Simples com Django
O Django já traz uma estrutura mais robusta, incluindo ORM, administração e separação de apps.
1. Instalação
pip install django
django-admin startproject blog_django
cd blog_django
python manage.py startapp posts
2. Estrutura do projeto
blog_django/
│── blog_django/
│ ├── settings.py
│ ├── urls.py
│── posts/
│ ├── models.py
│ ├── views.py
│ ├── urls.py
│ ├── templates/
│ ├── index.html
│ ├── post.html
3. Definindo o modelo do Post (models.py)
from django.db import models
class Post(models.Model):
titulo = models.CharField(max_length=200)
conteudo = models.TextField()
def __str__(self):
return self.titulo
Crie o banco de dados:
python manage.py makemigrations
python manage.py migrate
4. Criando o Admin
No posts/admin.py:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
Crie um superusuário:
python manage.py createsuperuser
Agora você pode adicionar posts pelo painel /admin/.
5. Views e URLs
posts/views.py:
from django.shortcuts import render, get_object_or_404
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request, "index.html", {"posts": posts})
def post(request, id):
post = get_object_or_404(Post, id=id)
return render(request, "post.html", {"post": post})
posts/urls.py:
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path("post/<int:id>/", views.post, name="post"),
]
Inclua em blog_django/urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("posts.urls")),
]
6. Templates
templates/index.html:
<h1>📖 Meu Blog com Django</h1>
<ul>
{% for post in posts %}
<li><a href="/post/{{ post.id }}/">{{ post.titulo }}</a></li>
{% endfor %}
</ul>
templates/post.html:
<h1>{{ post.titulo }}</h1>
<p>{{ post.conteudo }}</p>
<a href="/">Voltar</a>
➡️ Pronto: agora você tem um blog com Django, gerenciado pelo painel de administração.
Flask vs Django – Qual escolher?
| Característica | Flask 🟢 | Django 🔵 |
|---|---|---|
| Filosofia | Minimalista | Completo e estruturado |
| Curva de aprendizado | Mais simples | Mais robusta |
| Banco de dados | Opcional | ORM integrado |
| Painel de administração | Precisa criar | Já vem pronto |
| Flexibilidade | Alta | Mais "opiniado" |
| Projetos ideais | Protótipos, APIs, apps pequenos | Blogs, e-commerces, apps complexos |
Conclusão
Criar um blog com Python é um ótimo exercício para aprender desenvolvimento web.
Com Flask, você entende melhor os fundamentos, porque constrói praticamente tudo manualmente.
Com Django, você tem mais produtividade e estrutura, especialmente em projetos maiores.
💡 Dica: Se você está começando, teste primeiro o Flask para entender os conceitos. Depois, avance para o Django para criar aplicações maiores e mais complexas.

Comentários
Postar um comentário