gpt4 book ai didi

python - 如何处理同一站点的两个版本

转载 作者:行者123 更新时间:2023-11-28 16:50:05 26 4
gpt4 key购买 nike

我的项目由同一事物的两个版本组成。例如,版本 1 是 Freshman,版本 2 是 Sophomore。为避免冗余,我使用相同的模板和 View ,因为这两个版本的实现差别不大。该网站的唯一区别在于网址。这样

localhost:8000/freshman/computer-science
localhost:8000/sophomore/computer-science

我网站的用户只需点击一个按钮即可切换到网站的任何版本,即 Freshman 或 Sophomore。我对如何实现这样一个方法感到困惑,通过它我不会重复自己并且可以以 pythonic 方式实现功能。

最佳答案

我建议考虑为两者使用一个 url 模式,但将唯一参数传递给每个。您可以使用 django.con.urls.defaults.include 函数实现此目的。在这种情况下,第一个 include 将 kwarg current_app 设置为 freshman,第二个 include 设置为 sophomore

from django.conf.urls.defaults import *

site_patterns = patterns('',
# put your urls here...
)

urlpatterns = patterns('',
url(r'^freshman/',
include(site_patterns, namespace='freshman', app_name='freshman'), {
'current_app': 'freshman',
}),
url(r'^sophomore',
include(site_patterns, namespace='sophomore', app_name='sophomore'), {
'current_app': 'sophomore',
}),
)

然后,像往常一样,您可以在 View 中弹出 kwarg,并根据该值触发独特的行为:

def my_view(request, *args, **kwargs):
current_app = kwargs.pop('current_app')

或者,您可以创建一个装饰器来自动执行此操作以及需要在遵循此格式的 View 上完成的任何其他样板。

关于python - 如何处理同一站点的两个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com