اضافة محتوى

albaderمنذ 6 سنوات

في هذا الدرس سنشرح كيفية اضافة موضوع جديد

قبل كل شيء نذهب الى ملف urls.py  بداخل المشروع الرئيسي

نظيف مسار جديد للاضافة

    url(r'^template/create/$', views.create, name='create'),

بعد ان قمنا بوضع مسار جديد للاضافة نقوم بعمل دالة باسم create كما وضعناها بالكود السابق

 

نذهب الى تطبيقنا blog

ثم نذهب الى ملف views.py

نقوم بانشاء دالة جديدة للاضافة

سنقوم ببرمجة دالة بسيطة بالبداية

وظيفتها طباعة المدخلات من المستخدم فقط لاغير

def create(request):
    if request.method == "POST":
        print(request.POST)

    return render(request, 'blog/create.html')

الدالة بسيطة جدا

وضعنا شرط اذا كان نوع الطلب post

تقوم بطباعة المدخلات  ( الطباعة تتم بالترمنال او الشاشة السودا او الكوماند -بالسيرفر- )

 

نقوم بانشاء الملف الذي عرفناه بالكود السابق create.html

ونقوم بصناعة استمارة بداخله

 

اذهب الى المسار

templates/blog

قم بانشاء ملف جديد باسم create.html

اصنع بداخله استماره بعدد الحقول التي قمنا بانشائها مسبقا

<form action="" method="post">
    <input type="text" name="author" placeholder="author"><br>
    <input type="text" name="title" placeholder="title"><br>
    <textarea name="post" id="" cols="30" rows="10" placeholder="post"></textarea><br>
    <input type="submit" value="add!">
</form>

الان لنقم بتشغيل السيرفر

python manage.py runserver

نتوجه الى الرابط التالي

http://127.0.0.1:8000/template/create/

 

سيظهر لنا الفورم الذي قمنا بانشائه

لنقم بوضع اي بيانات للتجربة ونضغط ارسال

 

عند الضغط على ارسال ستظهر لدينا رسالة 403

 

 

هذه حماية من جانغو بالارسال post

يجب ان نظيف الى الاستمارة (الفورم ) الذي قمنا بانشاءه csrf_token

ليصبح كالتالي

<form action="" method="post">
    
    {% csrf_token %}
    
    <input type="text" name="author" placeholder="author"><br>
    <input type="text" name="title" placeholder="title"><br>
    <textarea name="post" id="" cols="30" rows="10" placeholder="post"></textarea><br>
    <input type="submit" value="add!">
</form>

الان

لنفتح الصفحة مرة اخرى

ونكتب اي بيانات ونضغط ارسال

ثم نذهب الى الترمنال ونرى الناتج

كما ترون  ظهر لدينا المدخلات باساميها مثلا author  القيمة المرسلة هي albader وهكذا

 

الان نرجع مرة اخرى الى دالتنا create

ونقوم بالتعديل عليها نحذف امر الطباعه

print(request.POST)

ومكان امر الطباعه سنستقبل المدخلات

author = request.POST['author']
title = request.POST['title']
post = request.POST['post']

قمنا بوضع المدخلات داخل متغيرات

الان لنقم بارسالها الى قاعدة البيانات لحفظها

هناك طرق كثيره للحفظ او الفلتره قبل الحفظ ولكن سنستخدم الطريقة البدائية قبل ان نتعمق باغلب الطرق

 

سنكتب الكود كالتالي كما تعلمناه في دروس سابقة

 

def create(request):
    if request.method == "POST":# اذا نوع الطلب بوست
        author = request.POST['author']# استقبال المدخل اسم الكاتب
        title = request.POST['title']# استقبال المدخل العنوان
        post = request.POST['post']# استقبال المدخل المحتوى
        TestBlog.objects.create(author=author, title=title, post=post)#اضافة المحتويات الى قاعدة البيانات

    return render(request, 'blog/create.html')

طريقة اخرى للاضافة الى قاعدة البيانات

 

def create(request):
    if request.method == "POST":
        author = request.POST['author']
        title = request.POST['title']
        post = request.POST['post']

        Test = TestBlog()

        Test.author = author# الحقل اسم الكاتب مقابل المدخل اسم الكاتب
        Test.title = title# حقل العنوان مقابل المدخل العنوان
        Test.post = post

        Test.save()# حفظ البيانات السابقه المدخله للمتغير 
    return render(request, 'blog/create.html')

 

وايضا هناك عدة طرق

 

لكن اكتفي بهذا القدر

وتم اضافة المعلومات بنجاح

مستقبلا سنتعلم صناعة الاستمارة عن طريق استمارات جانغو المقدمة من جانغو نفسها والتحقق من المدخلات (ان شاء الله )

 

 

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !