Configuração e Uso Básico do Flask

Para configurar o ambiente, altere o repositório de pacotes Python para o da Douban: https://pypi.douban.com/simple/. Em seguida, instale o pacote Flask.

Configurações Básicas do Flask

O Flask é um framework web leve em Python que atua como middleware, executando com o Python enstalado no sistema operacional.

As rotas definem quais caminhos acessam quais recursos. No Flask, as rotas são definidas usando decoradores.

from flask import Flask

# Cria uma aplicação Flask
app = Flask(__name__)

# Define rotas e funções associadas
@app.route('/abc')
def pagina_a():
    return "Esta é uma página"

@app.route('/')
def index():
    return "haha"

if __name__ == '__main__':
    # Executa a aplicação Flask, na porta 8888, com modo de depuração ativado
    app.run(host='0.0.0.0', port=8888, debug=True)

Requisições e Parâmetros no Flask

Crie duas pastas: static e templates.

from flask import Flask, request

# Cria uma aplicação Flask
app = Flask(__name__,
            static_url_path='/static',
            static_folder='static',
            template_folder='templates')

# Rota com parâmetros
@app.route('/abc/<user_id>/<user_pass>')
def pagina_a(user_id, user_pass):
    return f"Esta é uma página {user_id}----{user_pass} hahahahah"

@app.route('/')
def index():
    return "haha"

if __name__ == '__main__':
    app.run(port=8888, debug=True)
</user_pass></user_id>

Parâmetros GET

@app.route('/abc', methods=['GET'])
def pagina_a():
    username = request.args.get('uname')
    userpass = request.args.get('upass')
    return f"Esta é uma página {username}----{userpass} hahahahah"

Parâmetros POST

@app.route('/abc', methods=['POST'])
def pagina_a():
    username = request.form.get('uname')
    userpass = request.form.get('upass')
    return f"Esta é uma página {username}----{userpass} hahahahah"

Tipo de Requisição e Cabeçalhos

Obter o Tipo de Requisição

@app.route('/abc', methods=['GET', 'POST'])
def pagina_a():
    return f"Esta é uma página {request.method} hahahahah"

Obter Cabeçalhos da Requisição

@app.route('/abc', methods=['GET', 'POST'])
def pagina_a():
    return f"Esta é uma página {request.headers}"
    return f"Esta é uma página {request.headers.get('User-Agent')}"
    return f"Esta é uma página {request.path}"

Outros Parâmetros e Resultados

# Caminho completo da requisição
return f"Esta é uma página {request.full_path}"

# URL base
return f"Esta é uma página {request.base_url}"

# URL completa
return f"Esta é uma página {request.url}"

# Informações do User-Agent
return f"Esta é uma página {request.user_agent}"
return f"Esta é uma página {request.user_agent.platform}"
return f"Esta é uma página {request.user_agent.browser}"
return f"Esta é uma página {request.user_agent.version}"

Trabalhando com JSON e Dicionários

Converter Dicionário para JSON

@app.route('/abc', methods=['GET', 'POST'])
def pagina_a():
    json_dict = {
        "name": "xiaoli",
        "age": "89",
        "score": "100"
    }
    result = json.dumps(json_dict)
    return result

Converter JSON para Dicionário

dict1 = json.loads('{"age": "89", "name": "xiaoli", "score": "100"}')
print(dict1["name"])
return 'x'

Redirecionamentos

Redirecionamento Interno e Externo

@app.route('/redirect')
def pagina_a():
    # Redirecionamento externo
    return flask.redirect('http://www.cctv.com')
    # Redirecionamento interno
    return flask.redirect(flask.url_for('pagina_b'))

@app.route('/b')
def pagina_b():
    return 'Você está aqui!'

Redirecionamento 404

@app.errorhandler(404)
def page_not_found(error):
    return "Página não encontrada! 404", 404

@app.route('/a')
def pagina_a():
    return 'haha'

@app.route('/b')
def pagina_b():
    return 'Você está aqui!'

Aliases de URL e Tratamento de Exceções

Alias de URL

@app.route('/a')
def pagina_a():
    return flask.redirect(flask.url_for('pagina_b1'))

@app.route('/woshihenchangdeluyou', endpoint='pagina_b1')
def pagina_b():
    return 'Você está aqui!'

Tratamento de Exceções

@app.route('/a')
def pagina_a():
    return 'a', 404

@app.errorhandler(404)
def page_not_found(error):
    return "Página não encontrada! 404", 404

@app.route('/a')
def pagina_a():
    flask.abort(404)
    return 'a'

Tags: Flask Python Web Development HTTP JSON

Publicado em 8-28 07:35