Rumah >pembangunan bahagian belakang >Tutorial Python >Bermula dengan Flask, Microframework Python
Falsafah reka bentuk Flask adalah ringan dan fleksibel, yang membolehkan pemaju dengan cepat dan mudah membuat aplikasi web. Artikel ini akan meliputi apa yang Flask, ciri-ciri utamanya, kelebihan API yang mudah, fleksibiliti dalam menyokong sambungan pihak ketiga, sambungan flask yang paling biasa digunakan, dan apabila kelalang harus atau tidak boleh digunakan.
mata utama
Apa itu Flask?
Flask adalah rangka kerja web kecil yang ditulis dalam Python untuk membangunkan aplikasi web. Ia dibina di atas konsep yang mudah: memastikan ia mudah dan ringan, menyediakan pemaju dengan alat yang paling penting yang mereka perlukan untuk membina aplikasi web tanpa kerumitan yang tidak perlu.Ia dibina di atas Werkzeug WSGI Toolkit, yang menyediakan fungsi pelayan web yang diperlukan untuk mengendalikan permintaan dan tindak balas, serta enjin template Jinja2, yang membolehkan Flask mengendalikan templat HTML, yang membolehkan pemaju membuat aplikasi web dinamik.
Berikut adalah beberapa ciri utama yang menjadikan Flask rangka kerja yang hebat:
Kelebihan Flask
Marilah kita melihat dengan lebih dekat beberapa kelebihan menggunakan Flask dalam pembangunan.kesederhanaan. Falsafah reka bentuk Flask menekankan kesederhanaan, yang memudahkan pemaju mana -mana peringkat untuk memahami dan menggunakannya. Ini juga bermakna pemaju mempunyai lengkung pembelajaran yang sangat rendah kerana mereka hanya perlu mempelajari beberapa konsep dan API untuk memulakan membina aplikasi web.
fleksibiliti. Ciri-ciri miniatur Flask-hanya menyediakan fungsi teras Rangka Kerja Web-membolehkan pemaju untuk menyesuaikan dan memperluaskannya menggunakan sambungan flask atau perpustakaan pihak ketiga untuk memenuhi keperluan mereka.
Dokumen. Dokumentasi Flask sangat komprehensif, meliputi kandungan dari topik asas hingga maju, menjadikannya mudah bagi pemaju untuk mengetahui cara menggunakan rangka kerja.
keserasian. Flask serasi dengan pelbagai versi Python, yang menjadikannya mudah digunakan dengan pangkalan kod Python yang sedia ada. Ia juga menyokong pelbagai pelayan web, yang memudahkan untuk digunakan pada pelbagai platform hosting.
Pembangunan pantas. Kesederhanaan dan fleksibiliti Flask mengurangkan kod boilerplate yang diperlukan untuk menyediakan aplikasi anda, yang membolehkan pemaju bermula dengan cepat.
Flask digunakan dalam banyak cara yang menarik di web. Beberapa contoh yang ketara termasuk:
bila menggunakan flask
kesederhanaan flask dan kemudahan penggunaan menjadikannya pilihan yang sangat baik untuk pelbagai projek web:
Apabila tidak menggunakan Flask
Walaupun Flask adalah rangka kerja yang hebat dan mempunyai banyak kelebihan dan ciri -ciri yang kuat, dalam beberapa kes ciri -ciri ini boleh memudaratkannya. Mari kita meneroka beberapa projek yang lebih sesuai untuk jenis rangka kerja lain.
Projek yang memerlukan fungsi terbina dalam. Sebagai rangka kerja mini, Flask hanya menyediakan bahagian teras yang diperlukan untuk membuat aplikasi web. Sekiranya projek memerlukan, katakan, antara muka pentadbiran, pengesahan, atau ORM, maka Django adalah pilihan yang lebih baik.
Projek dengan keperluan keselamatan yang ketat. Oleh kerana Flask adalah rangka kerja yang fleksibel, kita mesti bergantung pada sambungan pihak ketiga untuk mencapai tahap keselamatan dalam aplikasi kami. Walaupun ini pasti berfungsi, lebih baik bergantung pada rangka kerja yang lebih diuji yang mengambil pendekatan yang lebih selamat, seperti tornado atau berpintal.
Projek yang menguatkuasakan piawaian pengekodan tertentu. Oleh kerana fleksibiliti Flask, membangunkan aplikasi di atasnya membolehkan pemaju membuat aplikasi dengan cara yang mereka lihat patut. Walau bagaimanapun, kerangka seperti Django memastikan pemaju mengikuti konvensyen tertentu, yang bermaksud pemaju dapat dengan mudah bergerak dari satu projek ke projek lain.
Sediakan persekitaran pembangunan flask
mari kita lihat bagaimana untuk memulakan dengan Flask, dari menubuhkan persekitaran pembangunan, memasang, dan akhirnya melancarkan aplikasi yang minimum.
Python mesti dipasang pada mesin pembangunan. Berikut adalah arahan mengenai cara memasang Python (walaupun kami mungkin memasangnya).
Persekitaran maya adalah persekitaran python terpencil di mana kita boleh memasang pakej untuk projek tertentu tanpa menjejaskan pemasangan Python global. (Berikut adalah perbincangan lanjut tentang mengapa persekitaran maya berguna.) Terdapat pakej yang berbeza yang boleh mewujudkan persekitaran maya di Python, seperti Virtualenv, Venv, atau Conda.
Dalam artikel ini, kami akan menggunakan Virtualenv. Kami boleh memasangnya menggunakan arahan berikut:
<code>pip install virtualenv</code>
Selepas memasang Virtualenv, kami boleh membuat direktori di mana aplikasi Flask kami akan tinggal. Kita boleh menamakan direktori seperti yang kita suka - kecuali Flask, kerana ini akan membawa kepada konflik. Kami akan menamakannya Flask_intro:
<code>mkdir flask_intro</code>
Seterusnya, pergi ke direktori itu supaya kita boleh mula menggunakannya:
<code>cd flask_intro</code>
Dalam direktori ini, mari kita buat persekitaran maya kita menggunakan arahan berikut:
<code>virtualenv myenv</code>
Perintah di atas mewujudkan persekitaran maya dan namakan myenv. Mari aktifkannya supaya kita dapat memasang Flask di dalamnya. Untuk mengaktifkan persekitaran maya di Linux atau MacOS, gunakan arahan berikut:
<code>. myenv/bin/activate</code>
pada Windows, gunakan arahan ini:
<code>. myenv\Scripts\activate</code>
Setelah persekitaran maya kami diaktifkan, ia akan memaparkan nama persekitaran maya pada shell prompt, sama seperti output di bawah:
<code>(myenv)/~(path to your project directory)$</code>
Dalam persekitaran maya yang diaktifkan, kita boleh terus memasang flask menggunakan arahan berikut:
<code>pip install Flask</code>
Apabila Flask dipasang, mari kita teruskan dan buat aplikasi minimum. Kami akan membuat modul untuk menyimpan aplikasi Flask kami. Untuk kesederhanaan, kami namakannya hello.py. Pada Linux atau MacOS, kami boleh membuat fail ini dalam direktori flask_intro kami menggunakan arahan berikut:
<code>touch hello.py</code>
Perintah di atas mencipta fail bernama hello.py. Kami juga boleh menggunakan persekitaran pembangunan untuk membuat fail ini. Selepas membuat fail, letakkan kod berikut ke dalamnya dan simpan:
<code># hello.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!'</code>
Dalam kod di atas, kami mengimport kelas Flask dari modul Flask, kemudian buat contoh Flask yang bernama App dan lulus pembolehubah __Name__.
maka kami mempunyai penghias laluan @app.route ("/"), yang bermaksud bahawa fungsi hello_world () akan dipecat selepas seseorang mengakses laluan akar permohonan.
kita boleh menjalankan aplikasi dalam beberapa cara, jadi mari kita lihat beberapa. Kaedah pertama adalah untuk menyediakan pelbagai parameter kepada perintah flask: --app, kemudian simpan nama modul yang permohonan flask kami dan kemudian dijalankan. Lihat di bawah:
<code>flask –app <the module="" name="" of="" your=""> run</the></code>
Jalankan aplikasi sampel kami dengan contoh di atas:
<code>pip install virtualenv</code>
Ini akan menjalankan aplikasi kami pada port lalai 5000, jadi aplikasi akan tersedia di http: // localhost: 5000/atau http://127.0.0.1:5000/. Jika kami mahu aplikasi itu tersedia di pelabuhan lain, kami boleh menentukan port menggunakan pilihan -P atau --Port. Contohnya:
<code>mkdir flask_intro</code>Ini akan menjalankan pelayan pada port 8080. Satu lagi cara kita boleh menjalankan aplikasi adalah dengan hanya menggunakan arahan Flask Run. Walau bagaimanapun, untuk dapat melakukan ini, kita perlu memberitahu flask nama modul yang memegang contoh Flask, yang kita lakukan dengan menetapkan pembolehubah persekitaran flask_app. Oleh itu, dalam kes kami, aplikasi Flask dimasukkan ke dalam fail yang dipanggil Hello.py. Jadi kita boleh menetapkannya seperti ini:
<code>cd flask_intro</code>Sekarang kita telah menetapkan pembolehubah persekitaran flask_app, kita boleh menjalankan pelayan pembangunan seperti ini:
<code>virtualenv myenv</code>Menggunakan kod ini, kami kini menjalankan aplikasi web. Ini menunjukkan falsafah teras Flask: Kami tidak memerlukan banyak kod boilerplate untuk membuat sesuatu berjalan lancar. Walau bagaimanapun, aplikasi yang kami buat di atas tidak begitu praktikal atau berguna, kerana ia hanya menjadikan rentetan "Hello World!" Untuk melakukan sesuatu yang lebih berguna, kita boleh beralih kepada templat. Seterusnya kita akan melihat bagaimana menangani mereka.
template flask
Templat Flask adalah cara untuk membuat laman web dinamik yang boleh memaparkan kandungan yang berbeza berdasarkan pelbagai faktor, seperti data dari pangkalan data atau input pengguna. Templat dalam Flask adalah gabungan HTML dan ruang letak khas (dipanggil pembolehubah templat) yang digantikan dengan nilai sebenar pada runtime.Templat disimpan dalam direktori Templat. Oleh itu, untuk menggunakan templat, kita perlu mengimport kaedah render_template () dari flask. Kaedah render_template () menerima nama templat dan sebarang data pilihan yang perlu dihantar ke templat.
mari kita lihat fungsi contoh yang menggunakan templat untuk menjadikan laman web:
<code>. myenv/bin/activate</code>Dalam contoh di atas, kita mempunyai fungsi paparan - indeks () - yang terikat pada url akar ("/") melalui @app.route () penghias. Fungsi ini mempunyai dua pembolehubah, tajuk dan mesej. Akhirnya, kami lulus indeks templat.html ke render_template (), serta tajuk dan pembolehubah mesej.
Agar kod di atas berfungsi, kita perlu mempunyai templat indeks.html dalam direktori templat. Oleh itu, templat akan kelihatan seperti ini:
<code>. myenv\Scripts\activate</code>Dalam fail index.html, pemegang tempat {{title}} dan {{message}} digantikan dengan nilai yang diluluskan ke templat dalam kaedah render_template ().
Templat juga boleh mengandungi logik yang lebih kompleks, seperti jika pernyataan dan gelung, yang membolehkan halaman yang lebih dinamik dihasilkan.
Oleh itu, templat dalam Flask menyediakan pemaju dengan pilihan yang sangat kuat untuk membuat laman web dinamik yang penuh dengan maklumat yang dihasilkan oleh pengguna.
routing flask
Kebanyakan aplikasi web akan mempunyai pelbagai URL, jadi kita perlu mempunyai cara untuk mengetahui fungsi mana yang mengendalikan URL mana. Dalam flask, pemetaan ini dipanggil penghalaan -proses mengikat atau pemetaan URL untuk melihat fungsi. Mengikat URL untuk melihat fungsi membolehkan aplikasi mengendalikan pelbagai jenis permintaan, seperti GET, POST, PUT, DELETE, dll. Ia juga membolehkan permohonan mengendalikan pelbagai permintaan dari pelanggan yang berbeza. Untuk menubuhkan laluan dalam botol, kami menggunakan penghias laluan (). Penghias mengikat URL ke fungsi paparan -jadi apabila pengguna mengakses URL yang wujud dalam aplikasi, Flask mencetuskan fungsi pandangan yang berkaitan untuk mengendalikan permintaan. mari kita ambil contoh: Dalam contoh di atas, kita menentukan tentang URL (/kira -kira). Apabila permohonan menerima permintaan untuk URL mengenai, Flask memanggil fungsi mengenai (), yang mengembalikan rentetan "Ini adalah halaman mengenai". Setakat ini, walaupun contoh -contoh ini mengembalikan halaman yang berbeza, mereka semua hanya menggunakan permintaan HTTP. Untuk dapat mengendalikan sebarang permintaan tertentu, kami boleh menentukan kaedah HTTP sebagai parameter pilihan ke penghias () penghias. mari kita lihat contoh permintaan meletakkan: Dalam contoh ini, kami menentukan laluan untuk mengendalikan permintaan untuk mengemas kini butiran pengguna yang diberikan user_idnya. Kami menggunakan Dalam fungsi update_user (), kami menggunakan kaedah permintaan.get_json () untuk mendapatkan data pengguna dari badan permintaan. Kami melakukan tindakan tertentu pada data pengguna, seperti mengemas kini pengguna dalam pangkalan data, dan kemudian mengembalikan respons yang menunjukkan kejayaan atau kegagalan dan kod status HTTP (dalam kes ini 200, menunjukkan kejayaan). Secara umum, penghalaan membolehkan Flask dapat mengendalikan pelbagai jenis permintaan dan membolehkan aplikasi kami memproses dan memproses data dengan cara yang berbeza berdasarkan URL yang diakses oleh pengguna. Borang dan Pengesahan Flask Selain memaparkan data untuk pengguna, templat flask juga boleh menerima input pengguna untuk pemprosesan atau penyimpanan selanjutnya. Untuk melakukan ini, Flask menyediakan sokongan terbina dalam untuk memproses borang HTML dan mengendalikan input pengguna. Bentuk flask adalah berdasarkan Perpustakaan WTForms, yang menyediakan cara yang fleksibel dan berkuasa untuk memproses data bentuk dan melakukan pengesahan. Walau bagaimanapun, perpustakaan bukan sebahagian daripada pemasangan flask standard, jadi kita perlu memasangnya menggunakan arahan berikut: Selepas memasang wtforms, untuk menggunakan borang dalam botol, kita perlu menentukan kelas bentuk yang akan mewarisi dari flask_wtf.flaskform. Kelas ini akan mengandungi medan dalam borang dan sebarang peraturan pengesahan yang harus digunakan untuk mereka. mari kita lihat contoh borang log masuk: Dalam contoh di atas, kami menentukan borang log masuk dengan dua bidang - e -mel dan kata laluan - dan butang hantar. Kami juga mempunyai parameter pengesahan yang menentukan peraturan pengesahan untuk setiap bidang. Sebagai contoh, dalam kes ini, kami menghendaki medan e -mel mengandungi alamat e -mel yang sah dan medan kata laluan mengandungi kata laluan sekurang -kurangnya enam aksara. Selepas menentukan kelas borang, kita boleh menggunakannya dalam fungsi paparan log masuk untuk menjadikan borang dan memproses data borang yang dikemukakan oleh pengguna. Mari lihat contoh fungsi pandangan: Dalam contoh di atas, kami mempunyai pandangan log masuk yang menerima dua kaedah HTTP (Get and Post), jadi apabila pengguna mengakses URL dari penyemak imbas, LoginForm akan menjadi bentuk HTML menggunakan kaedah Render_Template, apabila pengguna Mengemukakan borang apabila kita menggunakan kaedah Validate_on_Submit untuk memeriksa sama ada borang itu sah. Jika borang itu sah, kami akan mengakses e -mel dan kata laluan. borang login.html mungkin kelihatan seperti ini: Templat di atas akan menjadikan medan e -mel dan kata laluan dan label mereka, serta butang hantar dengan teks "Login". Bidang form.csrf_token dimasukkan untuk mencegah serangan pemalsuan permintaan lintas tapak (CSRF). Gelung { % for %} digunakan untuk memaparkan sebarang kesilapan pengesahan yang mungkin berlaku. Dengan menggunakan borang flask, kami mempunyai cara yang kuat untuk memproses input pengguna dan kami akan dapat mengesahkan data yang mereka masukkan. lanjutan flask Seperti yang dapat kita lihat, Flask adalah rangka kerja kecil yang mengandungi hanya bahagian yang paling penting yang diperlukan untuk membuat aplikasi web. Walau bagaimanapun, jika kita perlu menambah fungsi yang kelalang itu sendiri tidak menyediakan, kita perlu menambah pakej ke pemasangan. Sambungan flask adalah cara kami menyediakan ciri tambahan ini. Kami hanya boleh memasang pakej yang diperlukan. Komuniti Flask telah mencipta banyak sambungan. Berikut adalah beberapa sambungan yang paling popular: Komuniti Flask telah mencipta beratus -ratus sambungan untuk mengendalikan ciri -ciri yang berbeza. Menggunakan sambungan biasanya mudah. Pertama, kita perlu memasang sambungan yang diperlukan menggunakan PIP. mari kita lihat contoh menggunakan Flask-Sqlalchemy. Pertama, kita perlu memasangnya: Seterusnya, kita perlu mengkonfigurasinya. Contohnya:
Kesimpulan
Semua dalam semua, Flask adalah pilihan yang sangat baik untuk membina aplikasi web dari sebarang saiz, dari projek peribadi kecil ke aplikasi komersil yang besar. Ia mudah dipelajari dan digunakan, tetapi juga menawarkan ciri -ciri canggih melalui banyak sambungannya. Jika anda berminat untuk mempelajari lebih lanjut mengenai Flask, berikut adalah beberapa sumber tambahan: Jika anda ingin mengetahui lebih lanjut mengenai Django dan Flask dan kes penggunaan terbaik mereka, lihat pembangunan web Python dengan Django dan Flask. Anda juga boleh melihat boilerplates flask percuma ini untuk membina aplikasi web pertama anda. Soalan Lazim Mengenai Flask (Rangka Kerja Python) Flask adalah rangka kerja web kecil untuk Python. Ia direka untuk menjadi ringan dan mudah digunakan, menjadikannya pilihan yang sangat baik untuk membangunkan aplikasi web dan API. Anda boleh memasang Flask menggunakan PIP (Pengurus Pakej Python). Gunakan arahan <code>pip install Flask</code> untuk memasang Flask pada sistem anda. Flask terkenal dengan kesederhanaan, fleksibiliti dan minimalismnya. Ia menyediakan ciri -ciri seperti penghalaan URL, pemprosesan permintaan, dan rendering templat, sambil membenarkan pemaju memilih dan mengintegrasikan komponen lain seperti yang diperlukan. Flask adalah rangka kerja kecil, sementara Django adalah kerangka web penuh. Flask menawarkan fleksibiliti dan kebebasan yang lebih besar untuk memilih komponen anda, sementara Django datang dengan banyak ciri dan konvensyen terbina dalam. Ya, Flask hebat untuk membina API RESTFUL. Kesederhanaan dan sokongannya untuk kaedah HTTP menjadikannya pilihan yang popular untuk mewujudkan titik akhir API. Flask boleh digunakan untuk aplikasi besar, tetapi ia mungkin memerlukan lebih banyak konfigurasi manual dan integrasi komponen daripada kerangka stack penuh seperti Django. <code>pip install virtualenv</code>
<code>mkdir flask_intro</code>
<code>cd flask_intro</code>
<code>virtualenv myenv</code>
<code>pip install virtualenv</code>
<code>mkdir flask_intro</code>
<code>cd flask_intro</code>
<code>virtualenv myenv</code>
Dalam contoh di atas, kami mempunyai model pengguna dengan nama pengguna dan medan e -mel. Kami juga mengkonfigurasi sqlalchemy_database_uri, mengarahkan kami menggunakan pangkalan data SQLite yang terletak di Contoh.db. Selepas ditubuhkan, kita kini boleh menggunakan objek DB untuk berinteraksi dengan pangkalan data. Sebagai contoh, kami boleh membuat pengguna baru dan menambahkannya ke pangkalan data seperti berikut: <code>. myenv/bin/activate</code>
Dengan lanjutan flask, aplikasi kami dapat mempunyai lebih banyak ciri daripada yang biasanya dilaksanakan dengan Flask Core.
Apa itu Flask?
bagaimana memasang flask?
Apakah ciri -ciri utama Flask?
Bagaimanakah Flask berbanding dengan kerangka web Python lain seperti Django?
Bolehkah saya membina API RESTful dengan Flask?
Adakah Flask Sesuai untuk Aplikasi Web Besar?
Atas ialah kandungan terperinci Bermula dengan Flask, Microframework Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!