Django的网址 - 如何在多个类别,通过清洁URL传递,而不需要?
-
20-08-2019 - |
题
我想从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/
所以,我将如何去于一体,兼有上述网址的结合,一旦它们与选择的位置和类别做了什么?
我可能需要在页面数传的分页。 ( http://foo.com/page/2/ )
我想保持URL清洁和自我解释。 我知道该怎么做一种类型的URL的同时但不结合多种类型。
如果我是做一个GET,那么我将这样做:的http:// foo.com/?locid=23323&catid=335&page=2 ,但我喜欢利用Django的清洁网址,并从留呢?&东西。
谢谢,
VN44CA
解决方案
我认为这将是在URL中的许多信息。我认为任何位置都有其唯一的ID,同去的类别。为什么不建立一个网址:
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中指定的。
例如,我不可能开始寻找在旧金山的单反数码相机,然后去寻找在巴尔的摩篮球。
显然,如果你想永久链接到任何位置品类组合,尽管这是不够的。
在思考这个一段时间后,我发现,最好的解决办法(对我来说)这是有一个字符串牵住我需要在一个干净的URL的所有参数。
所以,当用户第一次来到的 http://foo.com/ 强>它们都带有一个位置来选择。 Cookies是在这一点上是空的。
因此,用户继续运行并选择美国国家时,URL看起来像 HTTP:/ /foo.com/12334_0_0_0/United-States/ 和位置的cookie设置为1234,其为位置美国
的ID现在用户选择加利福尼亚和URL变化 http://foo.com/ 1235_0_0_0 /美国 - 美国加利福尼亚/ 和Cookie是由美国取代1235这对于位置加州的ID。在这一点上,用户选择类别电子。所以URL更改 http://foo.com/1235_3333_0_0/Electronics/ 和3333被保存在类别饼干。
如果用户下降到单反相机,那么他/她会看到的http:// foo.com/1235_3344_0_0/SLR-Cameras/ 。
此方式,该URL的第一部分跟踪多达4个参数,其可以被传递,而名称(蛞蝓)仅仅是用于呈现和SEO。
我认为这会工作的权利?这将是冷静有编码成一些随机文本URL的x_y_z_p部分和解码成ARGS&号码。
让我知道你觉得呢?