Jak mohu URL v Django podobné StackOverflow?

hlasů
5

Jsem vytvořit video webu. Chci, aby mé přímé adresy URL, které video, které mají vypadat example.com/watch/this-is-a-slug-1 kde 1 je ID videa. Nechci slimák na tom, ačkoli. example.com/watch/this-is-another-slug-1 by měly směřovat na stejnou stránku. Na SO, / otázky / id je pouze část adresy URL, na čem záleží. Jak to mohu udělat?

Položena 26/02/2010 v 03:08
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
8

Přetečení zásobníku používá formulář

example.com/watch/1/this-is-a-slug

což je snazší. Jste otevřel plechovku s červy, chcete-li číslo, aby na konci polotovaru tokenu, od té doby to bude (například) omezit, jaké druhy slimáků můžete použít, nebo prostě dělat to těžší na sebe.

Můžete použít url handler jako:

(r'^watch/(?P<id>\d+)/', 'watch')

chytit pouze ID a ignorovat cokoli po ID. (Poznámka: není $end-of-line znak).

Odpovězeno 26/02/2010 v 03:15
zdroj uživatelem

hlasů
-3

Při vší úctě k StackOverflow, to je špatný způsob, jak to udělat. Neměli byste mít dva prvky v URL, které identifikují stránku. ID je irelevantní - je to nezdravé. Měli byste být schopni jednoznačně identifikovat stránku ze samotného polotovaru.

Odpovězeno 26/02/2010 v 07:13
zdroj uživatelem

hlasů
0

Osobně jsem nepoužil Django, ale jsem použil rámce MVC předtím. Obecně platí, že mají nějakou funkci směrování URL, která umožňuje definovat strukturu (obvykle regulární výraz), která dostane mapována na regulátoru.

To může být dobrým místem pro začátek: http://docs.djangoproject.com/en/dev/topics/http/urls/

Jako Jesse Beder řečeno, měli byste stačí regulární výraz, aby odpovídal prvnímu URL segmentu (/ hodinky) a číselné ID, a pak dopředu, že k řadiči hodinek, která by se zabývala ID a ignorovat kulku.

Odpovězeno 26/02/2010 v 07:36
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more