Não é óbvio na documentação do balão sobre como obter a string de consulta. Eu sou novo, olhou para os documentos, não conseguiu encontrar!
assim
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
python
flask
query-string
Tampa
fonte
fonte
Respostas:
fonte
O URL completo está disponível como
request.url
e a sequência de consultas está disponível comorequest.query_string
.Aqui está um exemplo:
Para acessar um parâmetro conhecido individual passado na cadeia de consulta, você pode usar
request.args.get('param')
. Esta é a maneira "certa" de fazê-lo, tanto quanto eu sei.ETA: Antes de prosseguir, você deve se perguntar por que deseja a string de consulta. Eu nunca tive que puxar a string bruta - o Flask possui mecanismos para acessá-la de maneira abstrata. Você deve usá-los, a menos que tenha uma razão convincente para não o fazer.
fonte
O Werkzeug / Flask já analisou tudo para você. Não há necessidade de fazer o mesmo trabalho novamente com urlparse:
A documentação completa para os objetos de solicitação e resposta está em Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/
fonte
Podemos fazer isso usando request.query_string.
Exemplo:
Vamos considerar o view.py
Você também o torna mais modular usando o Flask Blueprints - http://flask.pocoo.org/docs/0.10/blueprints/
Vamos considerar que o primeiro nome está sendo passado como parte da string de consulta / web_url /? First_name = john
Como você vê, este é apenas um pequeno exemplo - você pode buscar vários valores + formatar esses e usá-los ou passá-los para o arquivo de modelo.
fonte
Eu vim aqui procurando a string de consulta, não como obter valores da string de consulta.
request.query_string
retorna os parâmetros de URL como sequência de bytes bruta (Ref 1).Exemplo de uso
request.query_string
:Resultado:
Referências:
fonte
Tente assim para a string de consulta:
Resultado:
fonte
Todas as formas da sequência de consultas recuperáveis do objeto de solicitação do balão, conforme descrito em O'Reilly Flask Web Devleopment :
No O'Reilly Flask Web Development , e como declarado por Manan Gouhari anteriormente, primeiro você precisa importar a solicitação:
request
é um objeto exposto pelo Flask como uma variável de contexto denominada (você adivinhou)request
. Como o próprio nome sugere, ele contém todas as informações que o cliente incluiu na solicitação HTTP. Este objeto possui muitos atributos e métodos que você pode recuperar e chamar, respectivamente.Você tem alguns
request
atributos que contêm a cadeia de caracteres de consulta para escolher. Aqui, listarei todos os atributos que contenham a string de consulta, bem como uma descrição do livro O'Reilly desse atributo.Primeiro, existe o
args
que é "um dicionário com todos os argumentos passados na string de consulta do URL". Portanto, se você deseja que a string de consulta seja analisada em um dicionário, faça algo assim:(Como outros salientaram, você também pode usar
.get('<arg_name>')
para obter um valor específico do dicionário)Então, há o
form
atributo, o que não contêm a string de consulta, mas que está incluído na parte de outro atributo que faz incluir a string de consulta que vou listar momentaneamente. Primeiro, porém,form
é "Um dicionário com todos os campos do formulário enviados com a solicitação". Eu digo o seguinte: existe outro atributo de dicionário disponível no objeto de solicitação do balão chamadovalues
.values
é "Um dicionário que combina os valores emform
eargs
". Recuperar isso seria algo como isto:(Mais uma vez, use
.get('<arg_name>')
para obter um item específico do dicionário)Outra opção é
query_string
"A parte da string de consulta da URL, como um valor binário bruto". Exemplo disso:Então, como um bônus adicional, existe o
full_path
que é "O caminho e as partes da string de consulta do URL". Por ejemplo:E, finalmente,
url
"A URL completa solicitada pelo cliente" (que inclui a cadeia de consulta):Happy hacking :)
fonte
Isso pode ser feito usando
request.args.get()
. Por exemplo, se a sua string de consulta tiver um campodate
, ela poderá ser acessada usandoNão se esqueça de adicionar "
request
" à lista de importações do balão, ou seja,fonte
request.args.get()
; novas respostas para perguntas antigas devem conter algo que não foi mencionado antes.Se a solicitação for GET e passamos alguns parâmetros de consulta,
fonte