Rumah >hujung hadapan web >tutorial css >Menggunakan Django dan Vue.js untuk mencipta aplikasi web pada IRIS: Mengintip ke dalam rangka kerja Django

Menggunakan Django dan Vue.js untuk mencipta aplikasi web pada IRIS: Mengintip ke dalam rangka kerja Django

Susan Sarandon
Susan Sarandonasal
2024-11-28 10:52:16592semak imbas

Using Django and Vue.js to create a web application on IRIS: Peeking into the Django framework

Sudah lama saya ingin mempelajari rangka kerja Django, tetapi projek lain yang lebih mendesak sentiasa diutamakan. Seperti kebanyakan pembangun, saya menggunakan python apabila ia berkaitan dengan pembelajaran mesin, tetapi apabila saya mula-mula mempelajari pengaturcaraan web PHP masih menikmati keutamaan, dan apabila tiba masanya untuk saya mengambil rangka kerja rumit baharu untuk mencipta aplikasi web untuk menerbitkan mesin saya kerja pembelajaran, saya masih beralih kepada PHP. Buat sementara waktu saya telah menggunakan rangka kerja yang dipanggil Laravel untuk membina tapak web saya, dan rangka kerja PHP ini memperkenalkan saya kepada corak Pengaturcara-Pandangan-Model-Model moden. Untuk menjadikan perkara lebih rumit, saya suka membina bahagian hadapan saya dengan rangka kerja javascript moden. Saya paling biasa dengan Vue.js jadi untuk projek ini saya tetap dengan itu walaupun lebih biasa mendengar orang menggunakan React.

Kenapa menggunakan rangka kerja yang rumit pula? Apakah cabaran terbesar untuk mempelajari rangka kerja seperti Django, Laravel, React atau Vue?

Setiap orang mempunyai jawapan mereka sendiri, tetapi saya semakin menyukai rangka kerja MVC kerana mereka memberikan banyak panduan tentang cara menstruktur apl anda. Ia menghalang saya daripada perlu mencipta semula roda setiap kali. Pada mulanya rangka kerja ini kelihatan mengekang dan samar, tetapi apabila saya sudah biasa dengan strukturnya, saya dapati lebih mudah untuk menambah ciri baharu.

Cabarannya ialah perkara boleh menjadi terlalu mudah. Rangka kerja seperti Django bergantung pada banyak trengkas atau andaian yang mungkin berdasarkan konsep biasa, tetapi mempunyai nama dan struktur yang tidak dikenali dalam Django. Dalam aplikasi saya, Django mengendalikan API dan semua penghalaan web. Jika saya ingin menambah titik akhir API baharu, saya perlu menambah fungsi pada fail dalam views.py saya, kemudian pergi ke fail urls.py dan tambah pernyataan untuk mengimport fungsi itu dan pernyataan lain untuk menentukan URL di mana ia Titik akhir API tersedia. Selepas itu, saya perlu mengedit komponen Vue bahagian hadapan saya untuk menggunakan javascript untuk menanyakan titik akhir tersebut untuk mendapatkan data dan menunjukkannya atau memanipulasinya untuk pengguna. 

Setelah projek saya disediakan, menambah fungsi seperti ini adalah pantas. Saya hanya perlu menambah kira-kira empat baris kod dan kemudian saya boleh menumpukan perhatian pada logik yang diperlukan dalam fungsi baharu saya dalam fail views.py untuk memproses permintaan HTTP dan mengembalikan data yang diperlukan dalam format JSON. Bahagian yang mencabar ialah mempelajari apa itu fail dan cara ia berfungsi bersama untuk mencipta keseluruhan aplikasi.

Saya mendapati cara terbaik untuk mempelajari rangka kerja seperti Django ialah mencari contoh yang berkesan dan mula cuba membuat perubahan kecil untuk merasakan aliran data. Rujuk dokumentasi apabila konsep mula menjadi lebih jelas dan lebih masuk akal. Minta model AI untuk menerangkan kepingan kod dan perkara yang akan dilakukan oleh fail standard yang berbeza dalam rangka kerja. Ia tidak mengambil masa yang lama untuk menyedari bahawa alat ini muncul sebagai cara untuk menjimatkan masa dalam jangka panjang dan memudahkan untuk menyelenggara dan mengemas kini aplikasi anda. Memandangkan rangka kerja Django dan Vue mempunyai struktur standard, apabila anda kembali kepada rangka kerja tersebut kelak, anda akan mendapati lebih mudah untuk memahami sebab anda mengekodkan sesuatu dengan cara tertentu dan lebih mudah untuk mewujudkan semula kebiasaan dengan kerja anda. Ia juga lebih mudah untuk mengambil aplikasi orang lain dan memahami fungsi teras kerana anda sudah biasa dengan struktur asas aplikasi mereka. 

Jadi apakah beberapa asas Django yang akan membantu seseorang untuk bermula? Bagi saya perkara pertama yang perlu difahami ialah projek Django dijana dengan menjalankan perintah untuk mencipta projek django baharu dan ini menjana satu set fail dan folder asas yang membentuk "projek asas" yang boleh anda gunakan untuk mula membina. Folder projek akan mempunyai beberapa fail python dengan tetapan yang digunakan untuk keseluruhan projek. Perkara penting yang akan anda lawati dengan kerap ialah settings.py, di mana semua tetapan anda berada dan urls.py. Apabila anda mempunyai soalan seperti "Bagaimanakah Django memutuskan tempat untuk meletakkan fail statik saya", jawapannya biasanya di suatu tempat dalam settings.py. Apabila anda ingin menambah URL baharu pada aplikasi anda, anda perlu mengemas kini fail urls.py. 

Bersama-sama dengan fail peringkat projek ini, anda kemudian membuat folder untuk setiap apl dalam projek anda. Apl ini kemudiannya perlu didaftarkan, iaitu dinamakan, dalam fail settings.py. Folder aplikasi utama dalam projek saya dipanggil dokumen. Di dalam folder itu saya mempunyai fail models.py, fail serializer.py, fail views.py. Terdapat yang lain, tetapi ini adalah tiga yang penting.

Di dalam models.py saya nyatakan objek Dokumen saya dan medan yang ada padanya. Django melakukan kerja untuk saya mencipta jadual Dokumen dalam pangkalan data IRIS dengan skema yang diperlukan untuk menyimpan maklumat yang saya rancang untuk simpan dalam objek Dokumen. Dalam fail models.py saya, saya memberitahu bahawa Dokumen saya semuanya mempunyai nama, yang merupakan rentetan aksara tidak lebih daripada 255 aksara, medan kandungan, yang hanya sejumlah besar teks, serta nama pangkalan data di mana vektor disimpan (medan teks lain), jenis pembenaman (medan teks lain), dan akhirnya dimensi pembenaman vektor, iaitu nombor. Menggunakan takrifan ini, Django mencipta jadual pangkalan data yang diperlukan dengan jenis lajur yang diperlukan. Menyimpan objek ke pangkalan data kemudiannya semudah Document.save().

Di dalam fail serializer.py hanyalah definisi tentang cara menukar objek anda kepada JSON dan sebaliknya. Untuk kes penggunaan asas terdapat cara standard untuk mentakrifkannya dan anda boleh melihatnya dalam projek ini.

Sekarang kita sampai ke titik Django, fail views.py. Di sinilah kami mentakrifkan fungsi yang menerima permintaan HTTP dan mengembalikan data seperti keseluruhan respons HTTP atau respons JSON dalam kes API JSON. Ini bermakna Django boleh menghantar keseluruhan halaman web dan juga menjadi bahagian hadapan apl anda, atau ia hanya boleh menyediakan data JSON dan anda boleh membina bahagian hadapan anda pada platform yang sama sekali berbeza.

Pada mulanya menggunakan semua fail dan konvensyen yang kelihatan sewenang-wenang ini boleh terasa seperti tugas, tetapi apabila anda melihat bahawa berbuat demikian bermakna aplikasi anda baru mula berfungsi dan memproses permintaan HTTP dan memberikan data yang betul sebagai tindak balas, ia boleh menjadi sangat menyeronokkan untuk terus membina ciri dan keupayaan baharu. Apabila anda telah menentukan satu objek, laluan web dan fungsi untuk mengendalikan permintaan HTTP, anda menyedari betapa mudahnya anda boleh menentukan yang kedua dan ketiga untuk menambah kefungsian pada aplikasi anda.

Saya membatalkan projek saya daripada Templat Iris Django yang dibuat oleh @guillaume.Rongier7183 di sini di github: https://github.com/grongierisc/iris-django-template

Templat itu hanya mengandungi Django, dan ia sangat membantu untuk mempelajari rangka kerja Django. Salah satu tambahan utama yang saya buat ialah menambah Vue.js dengan Tailwind CSS untuk menunjukkan bahawa anda boleh menyepadukan rangka kerja Javascript moden dengan pakej ini dan mempunyai Aplikasi Halaman Tunggal yang dijalankan pada IRIS. Aplikasi Halaman Tunggal ialah aplikasi javascript yang menghantar permintaan xhr untuk mendapatkan data JSON dan mengemas kini halaman secara dinamik tanpa memuatkannya semula sepenuhnya. Ia mempunyai kebaikan dan keburukan, tetapi ia merupakan ciri pembangunan web moden.

Saya menggalakkan orang ramai untuk melihat projek saya sebagai bukan sahaja contoh RAG dan Kedai Vektor di IRIS, tetapi juga sebagai templat untuk menggunakan Django dengan Vue.js dan Tailwind untuk mencipta aplikasi web fleksibel moden dengan mudah dan cepat di atas IRIS. Repositori itu ada di Github di sini: https://github.com/mindfulcoder49/iris-django-template

Saya berbesar hati untuk menjawab sebarang soalan atau memberikan apa-apa pandangan yang saya boleh tentang sebarang isu yang mungkin dihadapi oleh sesiapa sahaja ketika cuba menyesuaikan projek ini untuk kegunaan mereka sendiri.

Atas ialah kandungan terperinci Menggunakan Django dan Vue.js untuk mencipta aplikasi web pada IRIS: Mengintip ke dalam rangka kerja Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn