frasco cortador de biscoitos
Um modelo Flask para cookiecutter. (Suporta Python ≥ 3,8)
Consulte este repositório para ver um exemplo de projeto gerado a partir da versão mais recente do modelo.
Use agora
Docker (este é o método preferido para criar um novo projeto)
$ git clone https://github.com/cookiecutter-flask/cookiecutter-flask.git
$ cd cookiecutter-flask
# Basic usage (You will be prompted to provide basic information about your application)
$ ./cookiecutter-docker.sh
full_name [Steven Loria]:
...
# The repository for your flask app will be created in a directory with the name
# chosen in "package import name" question (default ./my_flask_app/)
# Additional arguments are available
$ ./cookiecutter-docker.sh --help
Usage: ./cookiecutter-docker.sh [OPTIONS]
Options:
-b, --build Build Docker image before running cookiecutter
-h, --help Show this message and exit
Padrão
Se estiver usando instruções padrão, é necessário Python ≥ 3.8. Um ambiente virtual é recomendado (como virtualenv
).
pip3 install cookiecutter
cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask.git
Você será questionado sobre suas informações básicas (nome, nome do projeto, nome do aplicativo, etc.). Esta informação será usada em seu novo projeto.
Configurar e executar
Depois de gerar o código do projeto, mais algumas etapas deverão ser executadas antes que seu novo aplicativo seja executado. O README do projeto gerado mostra como configurar e executar a aplicação. (Você pode ver o modelo README aqui).
Características
- Bootstrap 5 e Font Awesome 6 com modelos iniciais
- Flask-SQLAlchemy com modelo de usuário básico
- Migrações fáceis de banco de dados com Flask-Migrate
- Configuração em variáveis de ambiente, conforme The Twelve-Factor App
- Flask-WTForms com formulários de login e registro
- Flask-Login para autenticação
- Flask-Bcrypt para hash de senha
- Perfil para implantação em um PaaS (por exemplo, Heroku)
- pytest e Factory-Boy para testes (exemplos de testes incluídos)
- Click CLI do Flask configurado com comandos simples
- Minificação de CSS e JS usando webpack
- suporte npm para gerenciamento de pacotes frontend
- Cache usando Flask-Cache
- Barra de ferramentas de depuração útil
- Utiliza práticas recomendadas: Blueprints e padrões de Application Factory
Capturas de tela
Inspiração
- Estruturando aplicativos Flask
- Fundação Flask por @JackStouffer
- ossos de frasco por @cburmeister
- registro básico de frasco por @ mjhea0
- Documentação Oficial do Frasco
Licença
Licenciado pelo MIT.
Registro de alterações
Não lançado
- Atualize todas as dependências do nó para as versões mais recentes
- Mude para o uso de ações do Github para modelo de CI
- Remover suporte para Node 10 como uma opção Cookiecutter
- Imagem Docker refatorada para usar compilações de vários estágios com mais eficiência
- Projetos gerados com o modelo usam ações do Github para CI
- Atualize o Webpack para 5.x
- Suporte abandonado para Python 3.6, 3.7 e 3.8
- Adicionado suporte para Python 3.9, 3.10, 3.11 e 3.12
- Adicionado Nó 18 e 20 LTS
- Nó 12, 14 e 16 LTS removido
18.0.0 (09/09/2018)
- Use CalVer (
YY.MINOR.MICRO
). - Atualize para Bootstrap 4. Obrigado @adawalli e @Hiyorim.
- Use variáveis de ambiente para configuração.
- Adicione suporte para Pipenv.
- Atualize as dependências do Python e do Node.
0.13.0 (25/06/2017)
- Use o webpack para construir ativos front-end. As dependências de front-end são instaladas com NPM. Remova Flask-Assets e bower.json. Obrigado @wroberts.
0.12.0 (06/11/2016)
- Atualize as dependências do Python.
0.11.1 (06/11/2016)
- Passe corretamente o primeiro parâmetro para
Flask
de acordo com a documentação 0.11. Obrigado @aliavni. - Remova setuptools e wheel como dependências para corrigir a implantação no Heroku. Obrigado @Cabalista.
- Torne User.password um campo binário para compatibilidade com novas versões do bcrypt. Obrigado novamente @Cabalist.
0.11.0 (10/09/2016)
- Use a variável de ambiente do sistema FLASK_DEBUG, em vez de MYFLASKAPP_ENV, para controlar diferentes configurações para ambientes de desenvolvimento e produção
0.10.1 (28/08/2016)
- Correção do comando
invoke test
.
0.10.0 (28/08/2016)
- Atualize para o Flask 0.11.
- Use Click em vez de Flask-Script para comandos CLI.
0.9.0 (03/06/2016)
- Atualize requisitos obsoletos.
- Adicione proteção CSRF.
- Execute o comando
lint
nas compilações do Travis. - Teste em Python 3.5.
0.8.0 (09/11/2015)
- Atualize requisitos obsoletos.
- Adicione comandos de gerenciamento
lint
, clean
e urls
. - Adicione uma classificação.
Obrigado @andreoliw por essas contribuições.
0.7.0 (14/04/2015)
- Atualize o estilo de importação da extensão para flask_* conforme mitsuhiko/flask#1135.
- Atualize requisitos obsoletos (Werkzeug, Flask-WTF, WTForms, Flask-Bcrypt, Flask-DebugToolbar, Flask-Migrate, Bootstrap, jQuery). Obrigado @bsmithgall por me notificar sobre o patch crítico do Flask-Migrate.
0.6.0 (01/12/2014)
- Teste o cortador de biscoitos em Travis. Obrigado @joshfriend.
- Atualizar requisitos obsoletos (Flask-WTF, Flask-Migrate, Flask-DebugToolbar)
0.5.0 (29/09/2014)
- Corrigir .travis.yml.
- Atualizar requisitos obsoletos (Flask-WTF, WTForms, Flask-SQLAlchemy, jquery, Bootstrap)
0.4.3 (27/07/2014)
- Adicione a classe
BaseFactory
. - Adicione o módulo compat.py.
- Os testes são aprovados no Python 3.
0.4.2 (27/07/2014)
- Atualize as fábricas para a sintaxe factory-boy >= 2.4.0.
- Atualize requisitos obsoletos.
0.4.1 (07/06/2014)
- Atualizar requisitos obsoletos (Werkzeug 0.9.6, WTForms 2.0)
- Corrija a tag div incomparável em home.html (obrigado @ level09)
0.4.0 (19/04/2014)
- Adicione ReferenceCol para colunas de chave estrangeira menos detalhadas.
- Adicione o mixin SurrogatePK para adicionar uma chave primária inteira a um modelo.
- Adicione a classe Model base que possui métodos de conveniência CRUD.
- Corrigida a configuração da complexidade da criptografia BCrypt. Os testes são muito mais rápidos.
- Adicione o modelo de função para mostrar o uso de ReferenceCol.
- Mude para pytest.
- Atualize todos os requisitos desatualizados.
- Mais exemplos de teste.
- Remova “year” de cookiecutter.json (apenas altere LICENSE se necessário).
0.3.2 (26/02/2014)
- Corrija ativos estáticos.
0.3.1 (20/02/2014)
- Atualize o ano padrão em cookiecutter.json. Obrigado @Omeryl
- Teste correto de redirecionamentos em webtests. Obrigado @Widdershin
- Corrija a ação POST no formulário de navegação. Obrigado @Widdershin.
- Atualizar Bootstrap (3.1.1) e jQuery (2.1.0)
- Suporte opcional para caramanchão.
- Os ativos minificados não são usados no ambiente de desenvolvimento.
0.3.0 (12/08/2013)
- Organização mais modular: cada blueprint contém sua própria visualização, modelos e formulários em um diretório. Ainda existe um único diretório para modelos e ativos estáticos.
- Use Flask-Bcrypt para hash de senha.
- Flask-Login para autenticação.
- Configuração de teste simples. Basta criar uma subclasse de
DbTestCase
. - Suporte para teste de frasco.
- Use Factory-Boy para fábricas de teste.
- Use WebTest para testes funcionais.
- Adicione a barra de ferramentas Flask-Debug.
- Migrações usando Flask-Migrate.
- Cache usando Flask-Cache.
- Adicionar modelos de página de erro (404, 401, 500)
- Adicione Font Awesome 4.0.3 para ícones.
0.2.0 (21/09/2013)
- Adicionar script manager.py
- Adicionar Flask-Assets para agrupamento CSS e JS + minificação
- Use configurações diferentes para ambientes de desenvolvimento e produção, controlados pela variável de ambiente do sistema MYFLASKAPP_ENV
- Use Blueprints e padrão de fábrica de aplicativos. O branch
simple
não usa isso.
0.1.0 (20/08/2013)
- Primeira iteração
- Bootstrap 3 final
- Modelo de usuário ativo e registro