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 Madrasa kiganjani 👉2 Sira ya Mtume Muhammad (s.a.w) 👉3 kitabu cha Simulizi 👉4 Simulizi za Hadithi Audio 👉5 Bongolite - Game zone - Play free game 👉6 Kitabu cha Afya
Post zinazofanana:
PYTHON - somo la 1: Jinsi ya ku install python
Katika somo hili utajifunza kuhusu maana ya python na kazi zake. pia jinsi ya kuandaa kifaa chako kwa ajili ya somo.
Soma Zaidi...Python somo la 50: database kwneye django
Katika somo hili utakwenda kujifunza vipi django inaweza kuwasiliana na database, utajifunza kuusu orm na model
Soma Zaidi...Python somo la 14: Jinsi ya kutumia For loop
Katika somo hili utakwend akujifunza matumizi ya for loop kwneye python
Soma Zaidi...Python somo la 21: Module katika python
Katika somo hili utakwend akujifunz amaana ya module, kazi zake, aina zake na jinsi ya kuandika modile
Soma Zaidi...Python somo la 43: Kutuma Data kutoka View kwenda Template katika Django
Katika somo hili uatajifunza jinsi gani unaweza kutumia view kma logic kuuma data kwenye template
Soma Zaidi...Python somo 57: Matumizi ya Python shell
Katika somo hili, tutajifunza: Maana ya Python shell na umuhimu wake. Tofauti kati ya shell na terminal ya kawaida. Matumizi ya shell, hususan kwenye Django. Amri muhimu zaidi za Python shell, zilizotokana na models na views zako za pybongo.
Soma Zaidi...