Python somo la 53: Kutengeneza HTML Form na Django View kwa ajili ya kuingiza data
Katika somo hili tutaangalia jinsi ya kutengeneza fomu ya HTML kwa ajili ya kuingiza data kwenye jedwali la MenuItem, pamoja na kutengeneza view itakayopokea data hiyo na kuihifadhi kwenye database. Pia tutaunganisha form na URL route.
Utangulizi
Leo tutaendelea na mchakato wa kuingiza data kwenye jedwali la MenuItem kwa kutengeneza HTML form pamoja na view ya kushughulikia data kutoka kwenye fomu hiyo.
Sasa tuingie kwenye somo
1. Kutengeneza Django Form Class (recommended)
Badala ya kuandika HTML form manually, Django hutupatia “Form class” ambayo ni salama, rahisi, na ina-validations.
➡️ Unda faili forms.py ndani ya app yako:
forms.py
from django import forms
from .models import MenuItem
class MenuItemForm(forms.ModelForm):
class Meta:
model = MenuItem
fields = ['jina', 'maelezo', 'muda_upatikanaji', 'bei']
Hii Form class ndiyo itatusaidia kutengeneza HTML form moja kwa moja.
2. Kutengeneza View ya Kupokea Data
Unda view ambayo itaonyesha form na pia kupokea data kutoka kwa user.
views.py
from django.shortcuts import render, redirect
from .forms import MenuItemForm
def ongeza_menu_item(request):
if request.method == 'POST':
form = MenuItemForm(request.POST)
if form.is_valid():
form.save()
return redirect('menu_success')
else:
form = MenuItemForm()
return render(request, 'ongeza_menu.html', {'form': form})
Maelezo muhimu:
-
GET→ onyesha form -
POST→ ipokee, ithibitishe, ihifadhi kwa database -
form.save()→ huingiza data moja kwa moja
3. Kutengeneza URL Route
Fungua urls.py ya app yako:
from django.urls import path
from . import views
urlpatterns = [
path('ongeza/', views.ongeza_menu_item, name='ongeza_menu'),
path('success/', views.menu_success, name='menu_success'),
]
Kisha tengeneza success view:
def menu_success(request):
return render(request, 'success.html')
4. Kutengeneza Template File (HTML Form)
Unda faili ongeza_menu.html ndani ya folder templates/:
<!DOCTYPE html>
<html>
<head>
<title>Ongeza Menu Item</title>
</head>
<body>
<h2>Ongeza Bidhaa Mpya</h2>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Hifadhi</button>
</form>
</body>
</html>
{{ form.as_p }} ina-generate HTML form full kwa kutumia Django Form class tuliyotengeneza.
5. Kutengeneza success page
success.html
<h3>Taarifa imehifadhiwa kikamilifu!</h3>
<a href="{% url 'ongeza_menu' %}">Ongeza nyingine</a>
Kuboresha muonekano unaweza kutumia bootatrap kama hivi:
form.py
from dj...
Umeionaje Makala hii.. ?
Share On:
👉1 web hosting 👉2 ai web app 👉3 Simulizi za Hadithi Audio 👉4 Dua za Mitume na Manabii 👉5 Kitabu cha Afya 👉6 Bongolite - Game zone - Play free game
Post zinazofanana:
Python somo la 13: Kutumia condition statement - if, else, elif
Katika somo hili tutakwend akuziona aina za condition statement kwneye python na jinsi ya kuzitumia
Soma Zaidi...PYTHON - somo la 7: Jinsi ya kubadili aina ya data
Katika soo hili utakwenda kujifunza jinsi ya kubaduli aina moja ya data kwena aina nyingine. Kwa mfano unaweza kubadili namba kuwa string ama kubadili string kuwa nanda ama kubadili float kuwa int.
Soma Zaidi...PYTHON - somo la 4: Aina za data kwenye python
Katika somo hili utakwenda kujifunza aina za data ambazo hutumika kwenye python. hapa utajifunza aina kuu 3 za data.
Soma Zaidi...Python somo la 44: Data Manipulation katika Django Templates
Katika somo hili utakwend akujifunza jinsi ya kucheza na data kuzibadili kwa namna mbali mbali kwenye template
Soma Zaidi...Python somo la 56: Kuongeza Data Katika Database kwa Kutumia Django Admin na Django Shell
Katika somo hili tutajifunza njia mbili muhimu za kuongeza data kwenye database katika project yetu ya pybongo (app: menu). Njia hizi ni: Kutumia Django Admin Kutumia Django Shell Utafahamu pia jinsi ya kusajili models kwenye admin, jinsi ya kuingia admin panel, na namna ya kutengeneza entries mpya za MenuItem.
Soma Zaidi...Python somo la 28: inheritance kwenye OOP
Katika somo hili utakwenda kujifunz amaana ya inheritance na sheria za kuiandika inheritance.
Soma Zaidi...