允许基于给定分类法和.csv fi创建动态URL的应用程序

2024-04-25 18:10:26 发布

您现在位置:Python中文网/ 问答频道 /正文

欢迎光临。你知道吗

今天的问题比较复杂,我需要一个建议甚至指导。所以为了不拖延太久,我会尽量描述我的问题,尽量保留细节。你知道吗

我将Django 1.8.1Python 2.7与一些外部包一起使用。你知道吗

所以,从乞丐那里。我想创建一个通用的服务草案,可以用很多种不同的方式。在许多地方设置多次是其他时间的话题。所有这些乱七八糟的想法总是一样的-部署实例,上传分类文件,创建URL-魔术发生,一切正常。你知道吗

说明:

用户可以上传一个.csv文件,其中包含两个非常重要的字段。他们将负责为我的网站地址创建分类法。 假设我需要为购物中心建立一个网站(在那个特定的时间)。我的分类法描述了django如何创建看起来像这样的URL:

gallery-name.my_website_address.com/shop/specific-product/

正如我们所看到的,编写代码并不难,但当我想用新的分类法创建一个新网站时,问题就开始了,比如说这次是律师列表,它可能看起来像这样:

country.my_website_address.com/city/street/law-firm/lawyer/

我想现在你可能开始感觉到我的想法。主要的问题是如何在部署新应用程序时保持通用性和易用性,使用新的分类法和新的url设置。如何动态创建URL,是否可以为所有解决方案动态创建URL?如何将新创建的URL从.csv文件连接到视图?你知道吗

随着我对这个问题的深入,我开始注意到一些解决方法。 我认为这是可以实现的。例如,当我们查看此链接时:

country.my_website_address.com/city/street/hospital/doctor

我们首先看到的是子域,它可以在django面板管理中设置。接下来是域,我们现在不关心这个,然后是子链接-我注意到它们可以由一个视图服务(除了最后一个元素)。:/city/street/hospital/这些总是可以分组在一个点上。它们看起来总是一样的,这是一个在地图上有位置的列表。你知道吗

我们的url中的最后一个元素doctorlawyerproductcar或其他元素总是以相同的方式显示。只有有关它的详细信息,由.csv文件提供。我想我会试着用一种方式来编码它,这样我就可以从我的文件中选择哪个项目是a)子域b)清单c)特定的项目

所以总结一下,你有什么想法如何使这一切工作?如何创建URL,保持与视图的连接,保持多功能性?你知道吗

我买啤酒给那些愿意分享想法的人。你知道吗

致以最良好的祝愿!你知道吗

塞巴斯蒂安·伯茨基


Tags: 文件csvcom视图url元素streetcity
1条回答
网友
1楼 · 发布于 2024-04-25 18:10:26

我不完全确定我是否理解你的问题,但我很肯定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('/')

(我还没试过,但应该能用)

相关问题 更多 >