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'