擅长:python、mysql、java
<p>首先,不要将<code>^$</code>与<code>path()</code>一起使用。您只能将正则表达式与<code>re_path</code>一起使用</p>
<pre><code>path('', views.article_list),
</code></pre>
<p><a href="https://docs.djangoproject.com/en/3.1/ref/settings/#append-slash" rel="nofollow noreferrer">Usually</a>,<code>/articles</code>将被重定向到带有尾随斜杠的<code>/articles/</code></p>
<p>但是,在您的情况下,您有一个包罗万象的模式:</p>
<pre><code>re_path('^.*$', views.homepage)
</code></pre>
<p>这与<code>/articles</code>匹配,因此您可以看到主页。请注意,它并不像您在回答中所说的那样重定向到<em>,浏览器栏仍将显示<code>/articles</code></p>
<p>除非你有一个很好的理由拥有这个包罗万象的东西,否则我建议你把它去掉,改成</p>
<pre><code>re_path('^$', views.homepage),
</code></pre>
<p>或</p>
<pre><code>path('', views.homepage),
</code></pre>
<p>这样,您将看到<code>localhost:8000</code>的主页,<code>localhost:8000/articles</code>将被重定向到<code>localhost:8000/articles/</code>,对于不存在的页面,您将得到404,例如<code>localhost:8000/art/</code></p>