Pengenalan yang mudah untuk Flask Framework untuk pemula

Node Sumber: 1878430

  • Apa itu Kerangka?
  • FrontEnd vs BackEnd
  • Apa itu Flask Framework?
  • Pemasangan Labu
  • Membuat aplikasi Flask pertama kami
  • Rute
  • Rute Statis vs Rute Dinamis
  • Suntikan HTML
  • Pelepasan HTML
  • Protokol Transfer Hiperteks
  • DAPATKAN dan POST Metode

Kerangka kerja adalah dasar di mana program perangkat lunak dibangun. Ini berfungsi sebagai dasar bagi pengembang perangkat lunak, memungkinkan mereka untuk membuat berbagai aplikasi untuk platform tertentu. Ini adalah seperangkat fungsi dan kelas standar yang digunakan untuk terhubung dengan perangkat lunak sistem dan menangani input dan output.

Ini menyederhanakan kehidupan pengembang sambil memberi mereka kemampuan untuk menggunakan ekstensi tertentu dan membuat aplikasi online dapat diskalakan dan dipelihara.

Pengembangan Frontend vs Pengembangan Backend

  1. Ujung depan situs web adalah area di mana pengguna segera berinteraksi. Ini berisi semua yang dilihat dan berinteraksi dengan pengguna: warna dan gaya teks, gambar dan video, grafik dan tabel, menu navigasi, tombol, dan warna. HTML, CSS, dan JavaScript digunakan dalam mengembangkan front end. Beberapa kerangka kerja untuk frontend adalah:
    • AngularJS
    • Sencha Ext JS
    • Bereaksi
  2. Bagian belakang situs web mengacu pada sisi server situs web. Ini menyimpan dan mengatur data dan memastikan bahwa semua yang ada di sisi klien situs web berfungsi dengan baik. Ini adalah bagian dari situs web yang Anda tidak dapat berinteraksi atau mengaksesnya. Ini adalah bagian dari perangkat lunak yang tidak memiliki komunikasi langsung dengan pengguna. Pengembangan Back End dilakukan dengan menggunakan Java, Python, C#, dan JavaScript. Beberapa kerangka kerja untuk backend adalah:
    • Labu
    • Angin topan
    • PiramidaArmin Ronacher
    • Django

Kerangka Labu

Flask digunakan untuk mengembangkan aplikasi web menggunakan python, diimplementasikan pada Werkzeug dan Jinja2. Keuntungan menggunakan framework Flask adalah:

  • Ada server pengembangan bawaan dan debugger cepat yang disediakan.

  • Ringan

  • Cookie aman didukung.

  • Templat menggunakan Jinja2.

  • Permintaan pengiriman menggunakan REST.

  • Dukungan untuk pengujian unit sudah ada di dalamnya.

Pemasangan Labu

Versi Python

Instal versi terbaru Python atau setidaknya gunakan versi >= Python 3.7

Membuat Lingkungan Virtual

Lingkungan virtual adalah koleksi terpisah dari pustaka Python, satu untuk setiap proyek. Paket yang diinstal untuk satu proyek tidak memengaruhi proyek lain atau paket sistem operasi. Python memiliki paket venv, yang memungkinkan Anda membangun lingkungan virtual.

Untuk Windows

> mkdir myproject > cd myproject > py -3 -m venv venv

Untuk Mac

$ mkdir myproject $ cd myproject $ python3 -m venv venv

Jadikan Lingkungan Aktif

Sebelum Anda mulai mengerjakan proyek Anda, aktifkan lingkungan:

Untuk Windows

> venvScriptsaktifkan

Untuk Mac

$ . venv/bin/aktifkan

Nama lingkungan aktif saat ini akan ditampilkan di prompt shell Anda.

Instal Labu

Jalankan perintah berikut di lingkungan aktif untuk menginstal Flask:

$pip install Flask

Membuat aplikasi Flask pertama kami

Mari kita buat aplikasi flask pertama kita sekarang. Aplikasi Flask mungkin terlihat seperti ini:

dari labu impor Flask

app = Labu (__ name__)

@aplikasi.rute(โ€œ/โ€)
def rumah():
kembali โ€œHalo, Dunia! Ini adalah aplikasi Flask pertama kami.โ€

jika __name__ == โ€œ__main__โ€:
app.run(debug=Benar)


Jika semuanya berfungsi dengan baik, ini akan memulai server bawaan, yang digunakan untuk pengujian tetapi mungkin tidak cocok untuk penggunaan produksi, konsol Anda akan menampilkan output berikut:

Keluaran Kerangka Labu

Ini berarti bahwa aplikasi kami berjalan di http://127.0.0.1:5000/. Di sini 127.0.0.1 adalah alamat IP default.

Sekarang mari kita pahami kodenya:

  1. Kami mulai dengan mengimpor kelas Flask.
  2. Kami kemudian membuat sebuah instance dari kelas ini. Argumen '__name__' dilewatkan yang merupakan nama modul atau paket aplikasi. Flask membutuhkan ini untuk mengetahui di mana mencari sumber daya seperti template dan file statis.
  3. Dekorator route() kemudian digunakan untuk menginformasikan Flask URL mana yang harus mengaktifkan metode kita.
  4. Metode ini mengembalikan pesan yang seharusnya ditampilkan di browser pengguna.

Mode debug

Perintah flask run mampu melakukan lebih dari sekadar memulai server pengembangan. Saat kami mengaktifkan mode debug, server akan segera memuat ulang jika kode berubah, dan debugger interaktif akan muncul di browser jika terjadi kesalahan selama permintaan.

Perutean di Flask

Membuat URL tetap sangat sederhana. Pengguna lebih cenderung menikmati dan kembali ke situs web jika memiliki URL bermakna yang dapat mereka ingat dan gunakan untuk langsung membuka halaman. Untuk membantu pengguna, aplikasi online modern menggunakan URL yang bermakna. Untuk mengikat fungsi ke URL, gunakan dekorator route().

@app.route('/') def index(): return 'Ini Halaman Beranda' @app.route('/hello') def hello(): return 'Ini Halo, Halaman Dunia'

Sekarang mari kita pahami kodenya:

  1. app.route('/') akan merutekan ke URL beranda, garis miring '/' biasanya digunakan sebagai konvensi untuk beranda.
  2. app.route('/hello') akan merutekan ke URL halaman halo.

Dengan cara ini, kita dapat merender sebanyak mungkin URL halaman web berbeda yang kita inginkan.

Rute Statis vs Rute Dinamis di Flask

Rute Statis

Seperti yang dapat kita pahami dari namanya bahwa rute statis adalah rute tetap yaitu untuk setiap fungsi rute kita harus secara eksplisit mendefinisikan fungsi yang sama untuk setiap rute URL.

@app.route('/Elon') def menyapa(): kembali 'Selamat datang Elon. Apa yang akan Anda pesan.' @app.route('/John') def hello(): kembali 'Selamat datang John. Apa yang akan Anda pesan.'

Kode ini akan menyapa pengguna yang berbeda dengan pesan yang sama.

Meskipun menerapkan fungsi yang sama untuk beberapa rute bukanlah masalah besar sampai Anda mencapai sejumlah rute tertentu. Ini dengan cepat menjadi proses yang panik ketika kita berhadapan dengan ratusan rute.

Rute Dinamis

Alih-alih mendefinisikan fungsi yang sama untuk setiap rute, kita dapat menambahkan bagian variabel ke URL dengan membubuhi keterangan bagian dengan . Nama variabel kemudian dikirim ke fungsi yang ditentukan sebagai parameter.

@app.route('/') def menyapa(nama): kembali f'selamat datang {nama}. Apa yang akan Anda pesan.'

di rute menangkap nilai dari URL dan meneruskannya ke fungsi. Jadi, bahkan jika jutaan pengguna merutekan halaman web ini, kami dapat menangani semua rute hanya dengan mendefinisikan satu fungsi.

Kami juga dapat menggunakan konverter untuk menentukan jenis parameter, seperti.

@app.route('/post/') def show_post(post_id): return f'Post ID adalah: {post_id}' @app.route('/path/') def show_subpath(subpath): return f'Yang diberikan subpath adalah: {subpath}'

Mendefinisikan tipe data bersama dengan nama variabel memaksa pengguna untuk mengikuti konvensi saat meneruskan nama rute ke server.

Jenis konverter:

int hanya menerima bilangan bulat positif
mengapung hanya menerima nilai floating-point positif
tali menerima teks (secara default) tanpa garis miring
path seperti string tetapi juga menerima garis miring
uuid menerima string UUID

Suntikan HTML

Injeksi HTML adalah cara memodifikasi halaman web yang disajikan aplikasi kepada penggunanya dengan menggunakan input yang tidak divalidasi. Jika sebuah program tidak memvalidasi data pengguna, penyerang dapat mengirim teks berbahaya dalam format HTML yang dapat mengubah konten situs, dilihat oleh pengguna lain. Kueri yang dirancang dengan baik dapat menghasilkan penyisipan elemen HTML yang dikendalikan penyerang ke dalam halaman web, mengubah cara konten aplikasi ditampilkan di web.

Pelepasan HTML

Untuk menjaga dari serangan injeksi, semua nilai yang diberikan pengguna yang diberikan dalam output harus disertakan saat mengembalikan HTML (tipe respons default di Flask).

Fungsi escape() dapat digunakan secara manual. Sebagian besar contoh menghapusnya untuk singkatnya, tetapi Anda harus selalu memperhatikan bagaimana Anda mengakses data yang tidak tepercaya.

dari flask import escape @app.route("/") def hello(name): return f"Hello, {escape(name)}!"

Protokol Transfer Hiperteks

Saat kami mencari halaman web apa pun, untuk mengakses server dan klien mereka menggunakan beberapa metode HTTP untuk berkomunikasi. Saat Anda bekerja dengan Flask, Anda harus terbiasa dengan metode HTTP.

Hypertext Transfer Protocol (HTTP) adalah protokol yang memungkinkan klien dan server untuk berbagi informasi. HTTP adalah protokol permintaan-tanggapan yang digunakan untuk berkomunikasi antara klien dan server. Klien (browser) mengirimkan permintaan HTTP ke server, dan server menjawab.

Metode HTTP

  • DAPATKAN
  • POST
  • PUT
  • KEPALA
  • DELETE
  • tambalan
  • PILIHAN

Saat ini, kita akan melihat GET dan POST, ini adalah metode yang paling umum digunakan.

DAPATKAN Metode

GET digunakan untuk mengambil informasi dari situs web tertentu.

Metode POSTING

POST digunakan untuk mengirim data ke server untuk memperbarui atau membuat sumber daya.

dari permintaan impor flask @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': eturn do_the_login() else: return show_the_login_form( )

Sebuah rute, secara default, hanya menanggapi kueri GET. Parameter metode dekorator route() dapat digunakan untuk menangani metode HTTP yang dibahas.

Setelah membaca artikel ini, saya menyarankan Anda untuk berlatih menjalankan setiap kode di sistem Anda sehingga Anda bisa terbiasa.

Saya harap Anda menikmati membaca artikel. Jika Anda merasa bermanfaat, silakan bagikan di antara teman-teman Anda dan di media sosial. Untuk pertanyaan, saran, atau diskusi lainnya, silakan ping saya di sini di komentar atau hubungi saya melalui Email atau LinkedIn.

Hubungi saya di LinkedIn โ€“ www.linkedin.com/in/ashray-saini-2313b2162

Hubungi saya di Email - [email dilindungi]

Media yang ditampilkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas kebijaksanaan Penulis.

Sumber: https://www.analyticsvidhya.com/blog/2021/10/easy-introduction-to-flask-framework-for-beginners/

Stempel Waktu:

Lebih dari Analisis Vidhya