時間:2023-02-09 10:42:01 | 來源:建站知識
時間:2023-02-09 10:42:01 來源:建站知識
最近收到很多讀者的鼓勵,非常開心,這給了我更多將公眾號持續(xù)更新下去的動力。今天還收到微信公眾號開通以來的第一份贊賞,在這里要特別感謝橘子同學(xué)。如果你學(xué)習(xí)的是Python Web開發(fā)和Django,本公眾號絕對不會讓你失望,我會爭取所有文章做到清晰易懂,原創(chuàng)免費。如果你是老鳥,本公眾號的內(nèi)容也可以作為系統(tǒng)性的參考資料。from django.urls import path, re_pathfrom . import views# namespaceapp_name = 'blog'urlpatterns = [ # 展示所有文章 path('/index/', views.ArticleListView.as_view(), name='article_list'), # 展示文章詳情 re_path(r'^article/(?P<pk>/d+)/(?P<slug1>[-/w]+)/$', views.ArticleDetailView.as_view(), name='article_detail'), # 添加文章 re_path(r'^article/create/$', views.ArticleCreateView.as_view(), name='article_create'),]
from .models import Article, from django.http import HttpResponseRedirectfrom django.shortcuts import renderfrom .forms import ArticleFormdef article_create(request): if request.method == 'POST': form = ArticleForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect("/index/") else: form = ArticleForm() return render(request, 'blog/article_create_form.html', {'form': form})
如果/index/頁面有分頁功能, 你還可以通過使用HttpResponseRedirect('/index/?page=2')直接獲取第2頁的文章列表。......from django.http import HttpResponseRedirectfrom django.urls import reverse.....def article_create(request): if request.method == 'POST': form = ArticleForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('blog:article_list')) ....
from .models import Articlefrom django.http import HttpResponseRedirectfrom django.urls import reversefrom django.shortcuts import renderfrom .forms import ArticleFormdef article_create(request): if request.method == 'POST': form = ArticleForm(request.POST) if form.is_valid(): article = form.save() return HttpResponseRedirect(reverse('blog:article_detail', args=[str(article.pk), article.slug])) else: form = ArticleForm() return render(request, 'blog/article_create_form.html', {'form': form})
reverse('blog:article_detail', args=[str(article.pk), article.slug]
from django.shortcuts import redirectfrom django.urls import reverse# 案例1def my_view(request): ... return redirect('/index/')# 案例2def my_view(request): ... return redirect('https://www.baidu.com/')# 案例3def my_view(request): ... return redirect(reverse('blog:article_list'))
redirect真正NB的地方在于,它不僅能根據(jù)URL重定向,還可以根據(jù)對象Object重定向和根據(jù)視圖view重定向,根據(jù)視圖重定向的時候還可以傳遞額外的參數(shù)。from django.shortcuts import redirectdef my_view(request): ... obj = MyModel.objects.get(...) return redirect(obj)
def my_view(request): ... return redirect('some-view-name', foo='bar')
def get_absolute_url(self): return reverse('blog:article_detail', args=[str(self.pk), self.slug])
from django.urls import reversefrom django.shortcuts import redirectdef my_view(request): ... return redirect(reverse('admin:app_list', kwargs={'app_label': 'auth'}))
from django.urls import reversefrom blog import viewsreverse(views.index)
關(guān)鍵詞:方法
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。