Bir video sitesi oluşturuyorum. Doğrudan videolarımın bir videonun example.com/watch/this-is-a-slug-1 gibi görünmesini istiyorum, burada 1 video kimliğidir. Yine de sümüğün maddeyi istemiyorum. example.com/watch/this-is-another-slug-1 aynı sayfaya işaret etmelidir. SO üzerinde,/soru/kimlik önemli olan URL'nin tek parçasıdır. Bunu nasıl yapabilirim?Django'da stackoverflow'a benzer URL'leri nasıl yapabilirim?
cevap
yığın taşması formu işlemek daha kolaydır
example.com/watch/1/this-is-a-slug
kullanır. ID'nin sümüklü jetonun sonunda olmasını istiyorsanız, solucan bir kutu açıyorsunuz, çünkü o zaman ne tür sümüklü böceklerin kullanabileceğini kısıtlıyorsunuz, ya da sadece kendinize daha da zorlaştırıyorsunuz.
Sen gibi bir URL işleyicisi kullanabilirsiniz:
(r'^watch/(?P<id>\d+)/', 'watch')
yalnızca kimliği kapmak ve kimliği sonra şey görmezden. (Not: $
satır sonu karakteri yoktur.)
Stackoverflow'a olan tüm saygımla, bunun yanlış yolu budur. URL'de sayfayı tanımlayan iki öğeye sahip olmanız gerekmemelidir. Kimlik alakasız - bu önemsiz. Bir sayfayı tek başına sümükten ayırt edebilmelisiniz.
Yinelenen başlıklar nedir? Ya da karakterlerin sadece sümüklü böceklerden uzaklaşması mı? "C++ Pointers" ve "C'deki Pointers" başlıklı soruların her ikisi de aynı sümüklü olsun, varolan bir unvanla bir soru oluşturmak imkansız olabilir veya eski soruya erişilemez. Kimlik, benzersiz bir tanımlayıcıdır ve sümük, insan/arama motoru/vb. –
Django kullanmadıysanız ama daha önce MVC çerçeveler kullandım. Genelde, bir denetleyiciyle eşlenen bir deseni (genellikle düzenli bir ifade) tanımlamanıza olanak veren bir çeşit URL yönlendirme özelliğine sahiptir.
Bu başlamak için iyi bir yer olabilir: http://docs.djangoproject.com/en/dev/topics/http/urls/
Jesse Beder belirtildiği gibi, ileriye daha sonra ilk URL segmenti (/ watch) ve sayısal ID ve maç için düzenli ifade ihtiyaç sadece düşüncesi doğrultusunda Kimliği ile uğraşmak ve sümüklügü ihmal edecek bir saat denetleyicisi.
- 1. Cron urlleri Esnek Ortamda 403 durumu olsun
- 2. ELisp'te nasıl adlandırılmış argümanlar yapabilirim?
- 3. Haskell'de nasıl arama yapabilirim?
- 4. Bash'de nasıl sudo yapabilirim?
- 5. Boto'dan nasıl tanılama yapabilirim?
- 6. Dikey UISlider'ı nasıl yapabilirim?
- 7. ThreadPool.Join'i nasıl yapabilirim?
- 8. Bunu Jade'de nasıl yapabilirim?
- 9. Dockerfile'da nasıl yorum yapabilirim?
- 10. Stdin'den nasıl tarter yapabilirim?
- 11. nasıl yapabilirim MVC3
- 12. TwoLineListItem nasıl yapabilirim?
- 13. Java Daemon'u nasıl yapabilirim
- 14. UIImage'dan Pdf'yi nasıl yapabilirim?
- 15. XNamespace'i F # nasıl yapabilirim?
- 16. "PlaceAutocompleteFragment" çözümlenmesini nasıl yapabilirim?
- 17. SparkSQL'de benzer durum nasıl uygulanır?
- 18. RaisePropertyChanged ile neler yapabilirim?
- 19. C# ile özel denetimleri nasıl yapabilirim?
- 20. Model-morphosis, bunu nasıl yapabilirim
- 21. Boilerpipe - JSON'u nasıl çıkış yapabilirim?
- 22. xcode ile nasıl kurulum yapabilirim?
- 23. Yakut açmak dizi nasıl yapabilirim
- 24. Wicket'in "AjaxLink" Vatansızlığını nasıl yapabilirim?
- 25. Android: Özel PreferenceScreen'i nasıl yapabilirim?
- 26. Mülk redüktörde nasıl geçiş yapabilirim?
- 27. CAEmitterCell girişinde nasıl animasyon yapabilirim?
- 28. MPMoviePlayerController: Video döngümümü nasıl yapabilirim?
- 29. Liste anlamada ödevleri nasıl yapabilirim?
- 30. Elipsin yanıp sönmesini nasıl yapabilirim?
Hmm, bu tavsiye için teşekkürler. Örnek.com/watch/1-this-is-a-slug ise kimliği almak zor mu olurdu? Ayrıca, eğer bu sorular aptalca görünüyorsa özür dilerim! Bu sadece tasarlamak ve düzenlemek yerine aslında geliştirdiğim ilk site. Yardımlarınız için teşekkürler. –
@Matt, bu zor olmaz, ama neden yapmak istiyorsun? Stack Overflow'un yaptığı şeyi yapmak oldukça standart bir uygulamadır. –
Bunu neden yapmak istediğimi kesinlikle emin değilim./Id/slug kabul edilebilir ise, bunu yapacağım. Tekrar teşekkürler. –