Code Monkey home page Code Monkey logo

flask-examples's Introduction

flask-examples

Introdução

Esse projeto contém uma estrutura básica de projeto e exemplos de como criar uma API, rotas, responder requisições com status diferentes, e entre outros.

Estrutura

Para esse projeto, a estrutura do projeto é:

  • app/ - diretório onde contém a implementação da aplicação
  • app/api - contém a rota /api/ do projeto
  • app/models - contém manipulação de dados específicos da sua aplicação, como gerenciar usuários
  • app/templates - contém os HTML com códigos de jinja2, para exibir ao usuário
  • examples/ - alguns exemplos de comando de CURL
  • tests/ - testes unitários / integração para o projeto
  • uploads/ - diretório da aplicação para armazenar os arquivos que foram submetidos pelo o usuário

Iniciando o projeto

Para iniciar o projeto, execute os seguintes comandos:

Criar um ambiente virtual

$ python3 -m virtualenv env

Iniciando o ambiente virtual (linux)

$ source env/bin/activate 

Iniciando o ambiente virtual (windows)

$ .\env\Scripts\activate.bat

Instalar as depêndencias

(env) $ pip3 install -r requirements.txt

Iniciar o projeto

(env) $ flask run --debugger --reload --host 0.0.0.0

Depois que executou e finalizou o projeto, execute o seguinte comando para desativar o ambiente virtual se utilizar o mesmo terminal

(env) $ deactivate

Colocando em produção o projeto

Para colocar o projeto em produção, não é recomendado utilizar o próprio webserver do FLASK por conta de perda de performance.

Para isso, precisamos utilizar um WSGI (Web Server Gateway Interface) que nos permite chamar nossas rotas do projeto com uma boa performance, e será o Gunicorn.

Execute o seguinte comando para iniciar o projeto, onde utiliza o wsgi.py para obter as referências:

$ gunicorn -b 0.0.0.0:8080 -w 4 wsgi:app --log-level=debug

Alguns exemplos de comando CURL

Visualizar

Executando testes unitários / integração no projeto

Execute o seguinte comando para validar os testes, para esse projeto o output será:

$ python3 -m unittest tests/test_app.py

Finished
.Finished
F
======================================================================
FAIL: test_get_index (tests.test_app.FlaskTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "~/rodjul/flask-examples/tests/test_app.py", line 32, in test_get_index
    self.assertEqual(home.get_data(as_text=True), "<p>Hello World!</p>", "O valor do index, deveria ser <p>Hello, World!</p>")
AssertionError: '<p>Hello, World!</p>' != '<p>Hello World!</p>'
- <p>Hello, World!</p>
?         -
+ <p>Hello World!</p>
 : O valor do index, deveria ser <p>Hello, World!</p>

----------------------------------------------------------------------
Ran 2 tests in 0.018s

FAILED (failures=1)

Referências

flask-examples's People

Contributors

rodjul avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.