Tamanho de fonte
Alto contraste
Altura de linha
Entrar Cadastrar
Desenvolvimento web com python

Como criar um site em Python: guia passo a passo para iniciantes

Avatar de Rebeca Honório Rebeca Honório
20 minutos de leitura 16/09/2025 • Atualizado 24 dias atrás 5xp

Por que escolher Python para criar sites?

Quando você pensa em criar um site, pode imaginar que precisa dominar códigos complexos e/ou ter anos de experiência. Mas Python quebra essa barreira ao oferecer uma abordagem completamente diferente para o desenvolvimento web. A linguagem Python foi pensada para ser intuitiva e produtiva, permitindo que você transforme suas ideias em sites funcionais sem se perder em complicações desnecessárias.

Python se destaca no desenvolvimento web porque combina simplicidade com poder. Enquanto outras linguagens exigem que você escreva páginas de código para tarefas básicas, com Python você consegue criar funcionalidades robustas com poucas linhas. Isso significa menos tempo perdido com sintaxe complicada e mais tempo focado na solução real que você quer entregar.

Vantagens de usar Python para criar sites

Se você está começando no mundo do desenvolvimento web, Python oferece o caminho mais suave e recompensador. A comunidade Python é conhecida por ser acolhedora e prestativa, não importa qual dúvida você tenha, sempre haverá alguém disposto a ajudar nos fóruns, grupos e tutoriais espalhados pela internet.

Os frameworks como Flask e Django foram criados seguindo o princípio “baterias incluídas”, que já trazem soluções prontas para os problemas mais comuns do desenvolvimento web. Isso significa que você pode focar na criação e na lógica do seu site, em vez de se perder configurando detalhes técnicos complexos. Em poucas semanas de estudo, você já consegue ter seu primeiro site no ar, funcionando e resolvendo problemas reais.

Configurando o ambiente para desenvolvimento

1. Instalando o Python

Acesse o site oficial do Python:

Baixe a versão mais recente compatível com seu sistema operacional (Windows, macOS ou Linux).

Execute o instalador:

  • Windows: durante a instalação, é muito importante marcar a opção “Add Python to PATH” para que o Python seja acessível no terminal.
  • macOS/Linux: siga as instruções específicas para o seu sistema, normalmente envolve baixar e usar o instalador próprio do sistema ou usar um gerenciador de pacotes.

Finalize a instalação e abra o terminal ou prompt de comando.

Digite o comando para verificar a instalação:

python --version

Deve exibir a versão instalada do Python.

2. Escolhendo um editor de código

Um bom editor facilita muito o desenvolvimento.

Opções recomendadas:

  • Visual Studio Code: leve, personalizável, conta com extensão Python oficial para facilitar a programação;
  • PyCharm: IDE completo para Python, ideal para projetos maiores;
  • Sublime Text: editor rápido e simples para quem prefere leveza.

Baixe e instale o editor de sua escolha.

No caso do VS Code, instale a extensão Python disponível na loja de extensões.

3. Criando um ambiente virtual

Para cada projeto, é recomendável isolar as dependências com um ambiente virtual.

Abra o terminal na pasta do seu projeto.

Ative o ambiente virtual:

Windows:

nome_do_ambiente\Scripts\activate

Linux/macOS:

source nome_do_ambiente/bin/activate

Quando ativo, o prompt do terminal mostrará o nome do ambiente, indicando que está isolado.

Dentro deste ambiente, você pode instalar pacotes específicos para o projeto sem afetar o sistema.

4. Instalando frameworks para desenvolvimento web

Com o ambiente virtual ativo, use o pip para instalar frameworks:

Para Django:

pip install django

Para Flask:

pip install flask

5. Criando e executando o projeto

Para Django, crie um novo projeto com:

django-admin startproject nome_do_projeto .

Para Flask, crie um arquivo Python com seu código da aplicação.

Execute o servidor local para testar:

Django:

python manage.py runserver

Flask:

python nome_do_arquivo.py

Acesse o endereço local exibido (geralmente para Django) no navegador para ver o site em funcionamento.

6. Desativando o ambiente virtual

Quando quiser sair do ambiente virtual é só digitar o comando:

deactivate

Principais frameworks para desenvolvimento web em Python

desenvolvimento web python

O que é um framework?

Um framework é um conjunto organizado de ferramentas, bibliotecas e melhores práticas que oferece uma base sólida para construir aplicações web. Em vez de você ter que criar tudo do zero, como sistema de login, conexão com banco de dados e páginas dinâmicas, o framework já entrega essas funcionalidades prontas e testadas.

No mundo do Python web, você tem duas escolhas principais que atendem diferentes necessidades e estilos de desenvolvimento. Cada uma tem sua personalidade e suas vantagens específicas:

Flask 

Flask é como um canivete suíço de programação web: pequeno, eficiente e versátil. Este microframework leve foi criado para quem gosta de ter controle total sobre o que está construindo. Ele fornece apenas os componentes essenciais de roteamento de URLs, servidor web básico e deixa você decidir quais outras ferramentas adicionar.

A filosofia do Flask é “comece pequeno, cresça conforme precisa”. Por isso ele é perfeito para projetos pequenos e médios, APIs simples ou quando você quer aprender programação web sem se perder em funcionalidades complexas. 

Quando usar Flask: projetos pessoais, protótipos rápidos, APIs simples ou quando você quer máxima flexibilidade para escolher cada componente do seu sistema.

Django

Django já vem com praticamente tudo que você precisa para criar sistemas web robustos e profissionais. Sistema de autenticação, painel administrativo, ORM para banco de dados, sistema de templates e segurança integrada: tudo já vem configurado e funcionando.

O ponto forte do Django está na sua capacidade de acelerar drasticamente o desenvolvimento de projetos web. Enquanto você gastaria semanas criando um sistema de login seguro do zero, no Django isso já vem pronto. 

Gigantes como Instagram, Pinterest e Bitbucket escolheram Django justamente por essa combinação: desenvolvimento rápido com arquitetura sólida e escalável. O framework utiliza a arquitetura Model-View-Template (MVT), que separa claramente a lógica, interface e dados, mantendo seu código organizado e fácil de manter.

Quando usar Django: projetos grandes e complexos, sistemas com muitos usuários, aplicações que precisam crescer rapidamente.

Criando um site simples com Flask

Instalando o Flask

Antes de começar, você precisa preparar seu computador para o desenvolvimento. 

Abra o terminal e execute este comando:

pip install Flask

Este comando simples baixa e instala todas as ferramentas necessárias para criar aplicações web com Flask.

Estrutura básica de um projeto Flask

Crie uma pasta para seu projeto e dentro dela um arquivo chamado app.py. Este será o ponto central da sua aplicação:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Olá, mundo! Meu primeiro site está funcionando!"

if __name__ == '__main__':
    app.run(debug=True)

Vamos entender cada linha:

  • from flask import Flask: importa o Flask para seu projeto;
  • app = Flask(__name__): cria sua aplicação;
  • @app.route('/'): define que a função abaixo responde à página inicial;
  • def home():: função que decide o que mostrar na página;
  • app.run(debug=True): liga seu servidor.

Execute python app.py no terminal e acesse http://127.0.0.1:5000 no navegador. 

Criando rotas e views

Adicione mais páginas ao seu site expandindo o código:

@app.route('/sobre')
def sobre():
    return """
    <h1>Sobre Mim</h1>
    <p>Bem-vindo à minha página pessoal!</p>
    <a href='/'>Voltar para a página inicial</a>
    """

@app.route('/projetos')
def projetos():
    return """
    <h1>Meus Projetos</h1>
    <ul>
        <li>Site pessoal com Flask</li>
        <li>Sistema de cadastro</li>
    </ul>
    """

Integrando HTML e CSS

Para criar páginas bonitas e profissionais, você precisa separar o HTML do Python. 

Crie duas pastas:

  • templates (para arquivos HTML).
  • static (para CSS, imagens e JavaScript).
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Meu Site Flask</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <header>
        <nav>
            <a href="/">Início</a>
            <a href="/sobre">Sobre</a>
            <a href="/projetos">Projetos</a>
        </nav>
    </header>
    
    <main>
        <h1>Bem-vindo ao Meu Site!</h1>
        <p>Este é meu primeiro site criado com Flask e Python.</p>
    </main>
</body>
</html>

Na pasta static, crie um arquivo style.css com estilos modernos:

body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    min-height: 100vh;
}

nav {
    background: rgba(255, 255, 255, 0.1);
    padding: 1rem;
    text-align: center;
}

nav a {
    color: white;
    text-decoration: none;
    margin: 0 1rem;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    transition: background 0.3s ease;
}

nav a:hover {
    background: rgba(255, 255, 255, 0.2);
}

main {
    max-width: 800px;
    margin: 2rem auto;
    padding: 2rem;
    text-align: center;
}

Atualize seu app.py para usar os templates:

from flask import Flask, render_template

app = Flask(__name__)

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

@app.route('/projetos')
def projetos():
    # Passando dados do Python para o HTML
    projetos_lista = [
        {"nome": "Site Pessoal", "descricao": "Primeiro site com Flask"},
        {"nome": "Sistema de Cadastro", "descricao": "Gerenciador de usuários"}
    ]
    return render_template('projetos.html', projetos=projetos_lista)

Conectando a um banco de dados

Para armazenar dados, instale o SQLAlchemy:

pip install Flask-SQLAlchemy

Adicione funcionalidade de banco de dados ao seu app.py:

from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db = SQLAlchemy(app)

# Modelo do banco
class Contato(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nome = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(100), nullable=False)
    mensagem = db.Column(db.Text, nullable=False)

@app.route('/contato', methods=['GET', 'POST'])
def contato():
    if request.method == 'POST':
        nome = request.form['nome']
        email = request.form['email']
        mensagem = request.form['mensagem']
        
        novo_contato = Contato(nome=nome, email=email, mensagem=mensagem)
        db.session.add(novo_contato)
        db.session.commit()
        
        return redirect('/contato')
    
    return render_template('contato.html')

# Criar tabelas
with app.app_context():
    db.create_all()

Seu site agora possui múltiplas páginas, design profissional, dados dinâmicos e banco de dados funcional

Criando um site simples com Django

Se Flask é o canivete suíço do desenvolvimento web, Django é a caixa de ferramentas completa ele já vem com praticamente tudo que você precisa para criar sites profissionais e robustos. 

Vamos descobrir como construir seu primeiro projeto Django de forma simples e didática.

Instalando Django

Diferentemente do Flask, em vez de começar com um arquivo simples, o Django cria uma estrutura organizada desde o início. 

Primeiro, instale o Django:

pip install Django

Criando seu primeiro projeto

Django cria seu projeto automaticamente com tudo organizado. 

Depois execute o comando:

django-admin startproject meusite

O que aconteceu? Django criou uma pasta meusite com vários arquivos. Cada um tem uma função específica:

  • manage.py: ferramenta para comandos do Django;
  • settings.py: todas as configurações do seu site;
  • urls.py: define as páginas do seu site.

Entre na pasta criada com o comando:

cd meusite

Para ver seu site funcionando escreva:

python manage.py runserver

Criando sua primeira página

No Django, criamos “apps” para diferentes funcionalidades. Por exemplo, para criar um app para página inicial de um site:

python manage.py startapp home

O que é um app? É como um módulo do seu site. Por exemplo: um app para blog, outro para loja, etc.

Configurando o app

Abra meusite/settings.py e encontre INSTALLED_APPS. Adicione seu app:

INSTALLED_APPS = [
    'django.contrib.admin',
    # ... outros apps do Django
    'home',  # ← Adicione esta linha
]

Por que fazer isso? Django precisa saber que seu app existe para poder usá-lo.

Criando sua primeira view

View é o que controla o que aparece na página. Abra home/views.py:

from django.shortcuts import render

def inicio(request):
    return render(request, 'home/index.html')

O que significa cada parte?

  • def inicio(request): cria uma função chamada “inicio”;
  • Request informações sobre quem está acessando;
  • render() mostra uma página HTML.

Conectando URLs

Crie um arquivo home/urls.py:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.inicio, name='inicio'),
]

Explicando:

  • path(”, views.inicio) quando alguém acessar a página inicial (”), chama a função inicio.
  • name=’inicio’ dá um nome para esta página (útil depois).

Agora conecte ao projeto principal. Abra meusite/urls.py:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('home.urls')),  # ← Adicione esta linha
]

Criando o template HTML

Dentro da pasta home, crie: templates/home/index.html

Por que essa estrutura de pastas? Django organiza assim para evitar conflitos.

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Meu Site Django</title>
    <style>
        body { 
            font-family: Arial; 
            background: #667eea; 
            color: white; 
            text-align: center; 
            padding: 50px; 
        }
        .botao { 
            background: white; 
            color: #667eea; 
            padding: 10px 20px; 
            text-decoration: none; 
            border-radius: 20px; 
        }
    </style>
</head>
<body>
    <h1>Bem-vindo ao Django!</h1>
    <p>Meu primeiro site está funcionando!</p>
    <a href="/admin/" class="botao">Ver Admin</a>
</body>
</html>

Execute python manage.py runserver e acesse seu site!

Adicionando mais páginas

Vamos criar uma página “Sobre”. Em home/views.py, adicione:

def sobre(request):
    # Dados que queremos mostrar na página
    meus_dados = {
        'nome': 'Seu Nome',
        'idade': 25,
        'cidade': 'Sua Cidade'
    }
    return render(request, 'home/sobre.html', meus_dados)

O que é meus_dados? Um dicionário com informações que queremos passar para a página HTML.

Em home/urls.py, adicione a nova rota:

urlpatterns = [
    path('', views.inicio, name='inicio'),
    path('sobre/', views.sobre, name='sobre'),  # ← Nova página
]

Crie templates/home/sobre.html:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Sobre - Meu Site</title>
    <style>
        body { font-family: Arial; background: #764ba2; color: white; padding: 30px; }
        .card { background: rgba(255,255,255,0.1); padding: 20px; border-radius: 10px; }
    </style>
</head>
<body>
    <div class="card">
        <h1>Sobre Mim</h1>
        <!-- Usando os dados que enviamos da view -->
        <p>Nome: {{ nome }}</p>
        <p>Idade: {{ idade }} anos</p>
        <p>Cidade: {{ cidade }}</p>
        <a href="/">← Voltar ao início</a>
    </div>
</body>
</html>

Trabalhando com banco de dados

Django facilita muito trabalhar com dados. Vamos criar um modelo para guardar projetos.

Em home/models.py:

from django.db import models

class Projeto(models.Model):
    nome = models.CharField(max_length=100)          # Texto curto
    descricao = models.TextField()                   # Texto longo  
    tecnologia = models.CharField(max_length=50)     # Ex: "Python"
    concluido = models.BooleanField(default=False)   # True/False
    
    def __str__(self):
        return self.nome  # Como mostrar no admin

O que cada campo significa?

  • CharField texto curto (como nome);
  • TextField texto longo (como descrição);
  • BooleanField verdadeiro ou falso.

Para criar a tabela no banco:

python manage.py makemigrations

python manage.py migrate

O que estes comandos fazem?

  • makemigrations Django analisa seus modelos e prepara as mudanças.
  • migrate aplica as mudanças no banco de dados.

Publicando seu site desenvolvido com Python

O ecossistema Python oferece opções para todos os bolsos e necessidades. Desde plataformas completamente gratuitas para seus primeiros projetos até soluções empresariais robustas, você tem escolhas que crescem junto com sua ambição.

Serviços gratuitos: começando sem gastar nada

Para quem está dando os primeiros passos ou criando projetos pessoais, existem plataformas fantásticas que não custam um centavo:

  • Heroku: a plataforma mais amigável para iniciantes. Com comandos simples, você publica Flask e Django em minutos;
  • PythonAnywhere: criado especificamente para Python, oferece um ambiente completo no navegador. Você pode editar código, gerenciar arquivos e ver logs de forma online. Ideal para quem quer simplicidade total;
  • Railway e Render: alternativas modernas ao Heroku, com interfaces intuitivas e deploy automático a partir do GitHub. Perfeitos para desenvolvedores que querem praticidade;
  • Vercel e Netlify: embora focados em front-end, suportam aplicações Python através de funções serverless. Excelentes para APIs simples e sites estáticos gerados com Python.

Serviços pagos

Quando seu projeto precisa de mais recursos, controle total ou alta disponibilidade, as opções pagas oferecem poder empresarial:

  • AWS (Amazon Web Services): a solução mais robusta do mercado. Usado por Netflix, Spotify e milhares de empresas. Oferece controle total, mas exige conhecimento técnico mais avançado;
  • DigitalOcean: o meio-termo perfeito entre simplicidade e poder. Servidores virtuais a partir de $5/mês, documentação excelente e comunidade ativa;
  • Google Cloud Platform: integração perfeita com ferramentas de dados e IA. Ideal se você trabalha com machine learning ou precisa processar grandes volumes de informação;
  • Microsoft Azure: forte integração com ferramentas Microsoft e excelente para empresas que já usam o ecossistema da Microsoft.

Transforme seu futuro com a Trilha Python para Web

O que você aprendeu aqui é apenas a ponta do iceberg do que é possível com Python para web. Existem mundos inteiros para explorar: APIs REST, sistemas de autenticação avançados, integração com inteligência artificial, processamento de dados em tempo real e muito mais.

Pronto para se tornar um desenvolvedor web completo?

Se você chegou até aqui, significa que tem o perfil ideal para se destacar no desenvolvimento web com Python. Não deixe esse momento passar! É hora de acelerar seu aprendizado e conquistar as oportunidades que o mercado de tecnologia oferece.

Clique no card abaixo e comece sua Trilha Python para Web agora mesmo!

Trilha Python para Web

Trilha Python para Web

Domine a programação Python para web de forma prática! Crie aplicações web e desenvolva seus próprios projetos com Python e Django.

Comece agora
Imagem de um notebook

Cursos de programação gratuitos com certificado

Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:

  • Conteúdos gratuitos
  • Projetos práticos
  • Certificados
  • +20 mil alunos e comunidade exclusiva
  • Materiais didáticos e download de código
Inicie agora

Comentários

30xp
Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov