欢迎。
Toodays问题很复杂,我需要建议甚至指导。因此,不要拖延太长时间,我会尝试将我的问题描述为可能的,尽可能保留尽可能多的详细信息。
我正在使用Django 1.8.1
和Python 2.7
一些外部包。
所以,从开始。我想创建一个通用的通用服务草案,可以用于几十种不同的方式。在许多地方多次设置是其他时间的主题。所有这些混乱的想法总是一样的 - 部署实例,上传带分类法的文件,创建网址 - 魔术发生,一切正常。
说明:
用户可以上传.csv
文件,其中包含几个非常重要的字段。他们应负责在我的网站上为我的演讲创建分类。
假设我需要为购物中心建立一个网站(在那个特定的时间)。我的分类法描述了django如何创建看起来像这样的网址:
gallery-name.my_website_address.com/shop/specific-product/
正如我们所看到的那样,并没有什么难以编写代码,但是当我想开始使用新的分类标准的新网站时问题就出现了,让我们说这次是为了获得律师名单,例如:它可能看起来像这样:
country.my_website_address.com/city/street/law-firm/lawyer/
我想现在你可能会开始觉得我正在接受这个想法。主要问题是如何以一种保持多功能性的方式处理它,并且在使用新的URL设置和新的URL设置部署新应用程序时更容易。如何动态创建网址,甚至可以为所有解决方案动态创建网址?如何将我新创建的网址从.csv文件连接到我的视图?
随着我在这个问题上的深入,我开始注意到一些解决方案。 我认为它可以完成。例如,当我们查看此链接时:
country.my_website_address.com/city/street/hospital/doctor
我们首先看到的是 - 子域名,它可以在django面板管理员中设置。接下来,域名,我们现在不关心,然后是子链接 - 我注意到它们可以由一个视图提供服务(除了最后一个元素)。 :/city/street/hospital/
这些可以始终分组在一个位置。它们看起来总是一样,它是一张在地图上有位置的列表。
我们网址中doctor
,lawyer
,product
,car
或其他内容的最后一个元素将始终以相同的方式显示。只有.csv文件提供的有关它的详细信息。我想我会尝试以一种方式对其进行编码,这样我就可以从我的文件中选择哪个项目a)子域名b)列表c)特定项目
总而言之,您是否有任何想法如何使一切工作?如何通过保持与视图的连接来创建URL,保持多功能性?
我为那些愿意分享想法的人买啤酒。
祝福!
SebastianBurzyński
答案 0 :(得分:0)
我不完全确定我理解你的问题,但我非常确定Django的URL conf可以为你解决这个问题。
在一天结束时,Django使用正则表达式比较模式:
urlpatterns = [
url(r'shop/([0-9a-zA-Z]+)/', views.shop_view),
url(r'([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/', views.listing)
]
views.listing
应该(city,street,company,occupation)
作为输入参数。
with open("csv.csv","r") as fp:
taxonomy = ['/'.join(line.split(',')) for line in fp.readlines()]
urlpatterns = [url("(" + t + ")",views.split) for t in taxonomy]
split
看起来像
def split(request, string):
taxonomy = string.split('/')
(我还没试过,但它应该有效)