• 1

كيفية إكتشاف وإصلاح الأخطاء في جانغو Django بطريقة صحيحة؟

بدأت في تعلم البرمجة بلغة Python ولاحقًا بدأت أتعلم أكثر حول جانغو Django. في البداية كان من الصعب النظر في الأخطاء واكتشاف الخطأ الذي فعلته. وبعد مرور بعض الوقت، أعتقد أنه أصبح لدي روتين في تصحيح أخطاء الكود الخاص بي خصوصًا في مشاريع جانغو Django. وأتسأل عما إذا كانت الطريقة التي كنت أفعل بها هذا غير فعالة ويمكن القيام بها بشكل أسرع. عادةً ما أتمكن من العثور على الأخطاء وتصحيحها في الكود الخاص بي، لكنني أتساءل عما إذا كان يجب أن أقوم بذلك بشكل أسرع؟

عادةً ما أستخدم فقط معلومات التصحيح التي يقدمها جانغو Django. عندما تنتهي الأمور كما اعتقدت، أجد أني قد قمت بعمل الكثير من الأخطاء النحوية في الكود، وألقي نظرة على المتغيرات والكود بشكل عام لمعرفة أين يقوم الكود بشيء آخر غير ما أريده، وأحدد أين توجد المشكلة بشكل عام.

لكن هل يمكن تحسين هذه الطريقة؟ هل هناك بعض الأدوات الجيدة أو طرق أفضل لتصحيح أخطاء جانغو Djangoالخاص بك بشكل عملي أكثر؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يمكنك معرفة ماحدث لل object عند وصوله لل template كالتالي:

@register.filter 
def pdb(element):
    import pdb; pdb.set_trace()
    return element

الآن ، داخل القالب يمكنك القيام ب {{template_var | pdb}} والدخول إلى جلسة pdb حيث يمكنك فحص عنصرك.
كما يمكنك استخدام PyCharm فهو يجعلك قادراً بصرياً على المرور عبر الكود الخاص بك ومعرفة ما يحدث (يشير لك لأماكن وجود أخطاء في الكود أثناء كتابته). أيضاً هناك epdb وهو إضافة أو توسيع ل Python Debugge :

import epdb; epdb.serve()

بمجرد تنفيذ هذا الكود، أفتح "Python interpreter" وأتصل ب serving instance. يمكنك تحليل جميع القيم والخطوات من خلال الكود باستخدام أوامر pdb مثل n ، s ، إلخ.

import epdb; epdb.connect()
(Epdb) request
<WSGIRequest
path:/foo,
GET:<QueryDict: {}>, 
POST:<QuestDict: {}>,
...
>
(Epdb) request.session.session_key
'i31kq7lljj3up5v7hbw9cff0rga2vlq5'
(Epdb) list
 85         raise some_error.CustomError()
 86 
 87     # Example login view
 88     def login(request, username, password):
 89         import epdb; epdb.serve()
 90  ->     return my_login_method(username, password)
 91
 92     # Example view to show session key
 93     def get_session_key(request):
 94         return request.session.session_key
 95

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

هناك العديد من الطرق للقيام بذلك ، ولكن الأكثر وضوحا هو ببساطة استخدام  Python debugger

فقط أضف السطر التالي إلى دالة view 

import pdb; pdb.set_trace()

#or

breakpoint()  #from Python3.7

وأيضاً إذا كنت تستخدم IDE مثل PyCharm سيوفر لك سهولة في تتبع الأخطاء في الكود 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن