Iniciando um novo projeto usando o Flask

Recentemente eu estou trabalhando em um projeto que necessita do MongoDB, para projetos em bancos relacionais eu uso sempre o django, mas neste caso eu resolvi apostar na combinação do Flask + MongoDB, e de fato não me arrependi.

No começo eu tive algumas dificuldades, a primeira foi como criar o esqueleto do projeto, lendo a documentação eu me identifiquei logo com os blueprints e assim fiz algo parecido com o que geralmente trabalho no django.

A segunda dificuldade foi nos testes, novamente lendo a documentação e entendendo como funcionam o application e request context eu finalmente cheguei a um resultado satisfatório.

O resumo disso vocês podem encontrar no repositório do flask-example, se você tem dúvida em como começar o projeto e deseja ver alguns exemplos de testes de blueprints, não perca tempo.

Iniciando seu novo projeto em Django usando o django-project-template

Há algum tempo eu escrevi o artigo Setup inicial de um projeto Django 1.3, onde eu dava algumas dicas de como começar um novo projeto.

A partir da versão 1.4 o django permite a criação de projetos e aplicativos usando templates, então para facilitar a minha vida eu criei o projeto django-project-template.

Para criar um novo projeto usando este template é muito fácil, basta usar uma versão do django maior que a 1.4 e proceder da seguinte forma:

django-admin.py startproject --template=https://github.com/allisson/django-project-template/zipball/master meuprojeto
cd meuprojeto
pip install -r requirements.txt

Por padrão eu já instalo o south para migrações de bancos, pois uso ele em praticamente todos os meus projetos.

E também já configuro os diretórios meuprojeto/{media, static, template, sitestatic} que desempenham a mesma função descrita no artigo para django 1.3.

E para finalizar, o mapeamento das urls /static/ e /media/ já estão prontos no urls.py, é só colocar os arquivos nos lugares certos. Lembrando que quando o DEBUG=True esses mapeamentos são desabilitados, você deve colocar um servidor web para mapear e servir esses arquivos.