عناوين URL لـ Django - كيفية تمرير خدمات متعددة عبر عنوان URL النظيف دون الحاجة إلى ذلك؟

StackOverflow https://stackoverflow.com/questions/844276

سؤال

أريد الابتعاد عن GET params.لا أريد استخدام POST ولدي فئتان مختلفتان على الأقل لإنشاء عنوان URL لهما.

يُطلب من الزائرين أولاً اختيار موقع يمكن أن يكون واحدًا منه، على سبيل المثال:http://foo.com/United-States/ || http://foo.com/United-States/California/ || http://foo.com/United-States/California/San-Francisco-Region/ || http://foo.com/United-States/California/San-Francisco/

بمجرد تحديد الموقع، يمكنهم اختيار فئة يمكن أن تكون واحدة منها على سبيل المثال:

http://foo.com/Electronics/ || http://foo.com/Electronics/Camera/ || http://foo.com/Electronics/Camera/Digital/ || http://foo.com/Electronics/Camera/Digital/SLR/

لذا، كيف يمكنني دمج كلا عنواني URL أعلاه في عنوان واحد، بمجرد الانتهاء من تحديد الموقع والفئة؟

قد أحتاج إلى تمرير رقم الصفحة لترقيم الصفحات.(http://foo.com/page/2/)

أرغب في الحفاظ على عنوان URL نظيفًا وواضحًا بذاته.أعرف كيفية إنشاء نوع واحد من عناوين URL في كل مرة ولكن دون الجمع بين أنواع متعددة.

إذا كنت سأقوم بإجراء GET، فسوف أفعل: http://foo.com/?locid=23323&catid=335&page=2, ، لكني أحب الاستفادة من عنوان URL النظيف لـ Django والابتعاد عن ?& الأشياء.

شكرًا،

VN44CA

هل كانت مفيدة؟

المحلول

أعتقد أن هذا سيكون للعديد من المعلومات في عنوان URL.أفترض أن أي موقع له معرف فريد، وينطبق الشيء نفسه على الفئة.لماذا لا تقوم بإنشاء عنوان URL:

http://foo.com/United-States/Electronics/

http://foo.com/California/Digital/

http://foo.com/San-Francisco/SLR/

وما إلى ذلك وهلم جرا...

2 حجج كافية في حالتك.أو يمكنك تغيير اسم الفئة ليكون أكثر وضوحًا.

http://foo.com/Electronics/Camera/Digital/ => http://foo.com/Digital-Cameras/

نصائح أخرى

اعتمادًا على كيفية استخدامك لبيانات الموقع، وعدد المرات التي يرغب فيها المستخدم في تغيير الموقع، قد يكون من الأفضل تخزينها في الجلسة بدلاً من تحديدها في عنوان URL.

على سبيل المثال، من غير المرجح أن أبدأ بالبحث عن الكاميرات الرقمية ذات العدسة الأحادية العاكسة (SLR) في سان فرانسيسكو ثم أبحث بعد ذلك عن كرات السلة في بالتيمور.

من الواضح أن هذا لن يكون كافيًا إذا كنت تريد روابط دائمة لأي مجموعة من فئات الموقع.

بعد التفكير في هذا لفترة من الوقت، وجدت أن الحل الأفضل (بالنسبة لي) لهذا هو الحصول على سلسلة تحتوي فقط على جميع الوسائط التي أحتاجها في عنوان URL نظيف.

لذلك، عندما يأتي المستخدمون لأول مرة http://foo.com/ يتم تقديمهم مع مواقع للاختيار.ملفات تعريف الارتباط فارغة في هذه المرحلة.

لذلك، يمضي المستخدم قدمًا ويختار United-State، وسيبدو عنوان URL هكذا http://foo.com/12334_0_0_0/United-States/ ويتم تعيين ملف تعريف ارتباط الموقع على 1234 وهو معرف الموقع بالولايات المتحدة.

الآن يختار المستخدم كاليفورنيا ويتغير عنوان URL إلى http://foo.com/1235_0_0_0/United-States-California/ ويتم استبدال ملف تعريف الارتباط من الولايات المتحدة إلى 1235 وهو معرف موقع كاليفورنيا.عند هذه النقطة يقوم المستخدم بتحديد فئة الإلكترونيات.لذلك يتغير عنوان URL إلى http://foo.com/1235_3333_0_0/Electronics/ ويتم حفظ 3333 في فئة ملفات تعريف الارتباط.

إذا انتقل المستخدمون إلى كاميرا SLR، فسيرى ذلك http://foo.com/1235_3344_0_0/SLR-Cameras/.

بهذه الطريقة، يتتبع الجزء الأول من عنوان URL ما يصل إلى 4 وسيطات يمكن تمريرها والأسماء (الارتباطات الثابتة) مخصصة فقط للعرض التقديمي وتحسين محركات البحث.

أعتقد أن هذا سيعمل بشكل صحيح؟سيكون من الرائع أن يتم تشفير الجزء x_y_z_p من عنوان URL في بعض النصوص العشوائية وفك تشفيره مرة أخرى إلى وسيطات وأرقام.

اسمحوا لي أن أعرف ما هو رأيك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top