python - 如何在python项目中的两个应用程序之间设置urlpatterns?

Posted

技术标签:

【中文标题】python - 如何在python项目中的两个应用程序之间设置urlpatterns?【英文标题】:How to set urlpatterns between two app in a project in python? 【发布时间】:2020-10-14 19:46:37 【问题描述】:

我正在创建一个目前有两个应用程序的项目。 该项目和两个应用程序的 url 模式是:

camroid/urls.py

urlpatterns = [
    path('', include('camroidapp.urls')),
    path('accounts/', include('accounts.urls')),

    path('admin/', admin.site.urls),
]

camroidapp/urls.py

urlpatterns = [
    path('', views.index, name='index'),
]

accounts/urls.py

urlpatterns = [
    path('login', views.login, name='login'),
    path('register',views.register, name='register'),
    path('logout', views.logout, name='logout')
]

我的 index.html 页面的标题部分

index.html

    <header class="header-section">
        <a href="index.html" class="site-logo">Camroid<!--<img src="img/logo.png" > --></a>
        <div class="header-controls">
            <button class="nav-switch-btn"><i class="fa fa-bars"></i></button>
            <button class="search-btn"><i class="fa fa-search"></i></button>
        </div>
        <ul class="main-menu">

            <li><a href="about.html">The Artist</a></li>
            <li><a href="index.html">Home</a></li>
            <li>
                <a href="#">Portfolio</a>
                <ul class="sub-menu">
                    <li><a href="portfolio.html">Portfolio 1</a></li>
                    <li><a href="portfolio-1.html">Portfolio 2</a></li>
                    <li><a href="portfolio-2.html">Portfolio 3</a></li>
                </ul>
            </li>
            <li><a href="accounts/register">Register</a></li>
            <li><a href="accounts/login">Login</a></li>
            <li><a href="contact.html">Contact</a></li>
            <li class="search-mobile">
                <button class="search-btn"><i class="fa fa-search"></i></button>
            </li>
        </ul>
    </header>

所以当我运行服务器时,它使用“http://127.1.1.1:8880/”和 当我点击登录时,它使用'http://127.1.1.1:8880/accounts/login' 但是当我从登录页面点击注册时,它会调用“http://127.1.1.1:8880/accounts/accounts/register”,这是一个无效的网址

那么我该怎么做,当我从登录页面转移到注册时,它调用'http://127.1.1.1:8880/accounts/register',当我从注册页面转移到登录页面时,它调用'http:// /127.1.1.1:8880/accounts/login'

【问题讨论】:

我认为问题出在您的模板 html 文件上。您可以在此处添加您的 HTML 文件,其中包含注册链接吗? @AstikAnand 我在我调用它的地方添加了它的标题部分 【参考方案1】:

您应该在您的视图中使用 named urls,如下所示,以利用 relative urls

<a href="% url 'register' %">Register</a>
<a href="% url 'login' %">Login</a>

【讨论】:

很高兴它成功了。如果有帮助,您可以将其标记为已选中。

以上是关于python - 如何在python项目中的两个应用程序之间设置urlpatterns?的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个python应用以docker镜像的方式来运行?

如何识别python中的当前位置?

如何将列表中的每个项目与Python中另一个列表的所有值一起使用[重复]

Python,确定字符串是否应转换为Int或Float

如何从 Python 中两个不同 DataFrame 的值计数中绘制图表

python面试(2017.11.20)