Tidak jelas dari dokumentasi labu tentang cara mendapatkan string kueri. Saya baru, melihat dokumen, tidak dapat menemukan!
Begitu
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
python
flask
query-string
Tampa
sumber
sumber
Jawaban:
sumber
URL lengkap tersedia sebagai
request.url
, dan string kueri tersedia sebagairequest.query_string
.Ini sebuah contoh:
Untuk mengakses param yang dikenal secara individual yang dilewatkan dalam string kueri, Anda dapat menggunakan
request.args.get('param')
. Ini adalah cara yang "benar" untuk melakukannya, sejauh yang saya tahu.ETA: Sebelum melangkah lebih jauh, Anda harus bertanya pada diri sendiri mengapa Anda menginginkan string kueri. Saya tidak pernah harus menarik string mentah - Flask memiliki mekanisme untuk mengaksesnya secara abstrak. Anda harus menggunakannya kecuali Anda memiliki alasan kuat untuk tidak melakukannya.
sumber
Werkzeug / Labu karena sudah diuraikan segalanya untuk Anda. Tidak perlu melakukan pekerjaan yang sama lagi dengan urlparse:
Dokumentasi lengkap untuk objek permintaan dan respons ada di Werkzeug: http://werkzeug.pocoo.org/docs/wrappers/
sumber
Kita dapat melakukan ini dengan menggunakan request.query_string.
Contoh:
Mari kita pertimbangkan view.py
Anda juga membuatnya lebih modular dengan menggunakan Flask Blueprints - http://flask.pocoo.org/docs/0.10/blueprints/
Mari kita pertimbangkan nama depan diteruskan sebagai bagian dari string kueri / web_url /? First_name = john
Seperti yang Anda lihat, ini hanyalah contoh kecil - Anda dapat mengambil beberapa nilai + memformatnya dan menggunakannya atau meneruskannya ke file templat.
sumber
Saya datang ke sini mencari string kueri, bukan cara mendapatkan nilai dari string kueri.
request.query_string
mengembalikan parameter URL sebagai string byte mentah (Ref 1).Contoh menggunakan
request.query_string
:Keluaran:
Referensi:
sumber
Coba seperti ini untuk string kueri:
Keluaran:
sumber
Setiap bentuk string kueri yang diambil dari objek permintaan labu seperti yang dijelaskan dalam O'Reilly Flask Web Devleopment :
Dari O'Reilly Flask Web Development , dan seperti yang dinyatakan oleh Manan Gouhari sebelumnya, pertama-tama Anda harus mengimpor permintaan:
request
adalah objek yang diekspos oleh Flask sebagai variabel konteks bernama (Anda dapat menebaknya)request
. Seperti namanya, ini berisi semua informasi yang dimasukkan klien dalam permintaan HTTP. Objek ini memiliki banyak atribut dan metode yang masing-masing dapat Anda ambil dan panggil.Anda memiliki beberapa
request
atribut yang berisi string kueri untuk dipilih. Di sini saya akan membuat daftar setiap atribut yang berisi string kueri apa pun, serta deskripsi dari buku O'Reilly atribut itu.Pertama ada
args
yang merupakan "kamus dengan semua argumen yang diteruskan dalam string kueri URL." Jadi jika Anda ingin string kueri diuraikan ke dalam kamus, Anda akan melakukan sesuatu seperti ini:(Seperti yang ditunjukkan orang lain, Anda juga dapat menggunakan
.get('<arg_name>')
untuk mendapatkan nilai tertentu dari kamus)Kemudian, ada
form
atribut, yang tidak tidak mengandung string, tetapi yang termasuk dalam bagian dari atribut lain yang tidak termasuk string yang saya akan daftar sejenak. Namun, yang pertamaform
adalah "Kamus dengan semua bidang formulir yang dikirimkan bersama permintaan." Saya mengatakan itu untuk mengatakan ini: ada atribut kamus lain yang tersedia di objek permintaan termos disebutvalues
.values
adalah "Kamus yang menggabungkan nilai dalamform
danargs
." Mengambil yang akan terlihat seperti ini:(Sekali lagi, gunakan
.get('<arg_name>')
untuk mengeluarkan item tertentu dari kamus)Opsi lain
query_string
adalah "Bagian string kueri URL, sebagai nilai biner mentah." Contohnya:Kemudian sebagai bonus tambahan ada
full_path
yang "Bagian dan string string bagian dari URL." Por ejemplo:Dan akhirnya,,
url
"URL lengkap yang diminta oleh klien" (yang termasuk string kueri):Selamat melakukan peretasan :)
sumber
Ini bisa dilakukan menggunakan
request.args.get()
. Misalnya jika string kueri Anda memiliki bidangdate
, itu dapat diakses menggunakanJangan lupa menambahkan "
request
" ke daftar impor dari labu, missumber
request.args.get()
; jawaban baru untuk pertanyaan lama harus berisi sesuatu yang tidak disebutkan sebelumnya.Jika ada permintaan jika GET dan kami melewati beberapa parameter kueri,
sumber