def entry(request, name):
content = util.get_entry(name.strip())
if content == None:
content = "## Page was not found"
content = markdown(content)
return render(request, "encyclopedia/entry.html", {'content': content, 'title': name})
def edit(request,title):
content = util.get_entry(title.strip())
if content == None:
return render(request, "encyclopedia/edit.html", {'error': "404 Not Found"})
if request.method == "POST":
content = request.POST.get("content").strip()
if content == "":
return render(request, "encyclopedia/edit.html", {"message": "Can't save with empty field.", "title": title, "content": content})
util.save_entry(title, content)
return redirect("entry", name=title)
return render(request, "encyclopedia/edit.html", {'content': content, 'title': title})
util 具有幫助獲取輸入檔案名稱、保存新條目或獲取條目內容的檔案。
{% extends 'encyclopedia/layout.html' %}
{% block title %}
{{title}}
{% endblock %}
{% block body %}
<a href="{% url 'edit' title %}" class="badge badge-info">Edit This Page</a>
{{entry | safe }}
{% endblock %}
布局具有HTML的標準塊代碼
edit.html包含 HTML 代碼,該代碼在每個頁面上提供一個按鈕,以便我們可以編輯頁面條目的內容,并為要編輯的內容傳遞 name='content'。
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:name>", views.entry, name = 'entry'),
path("search", views.search, name= 'search'),
path("newpage",views.create,name='create'),
path("random",views.random,name='random'),
path("edit", views.edit, name='edit')
]
這是一個 CS50w 專案,我參考了其他來源。
uj5u.com熱心網友回復:
您正在將變數傳遞給 url 而它實際上并不需要任何只是添加標題引數來編輯路徑
path("edit/<str:title>/", views.edit, name='edit')
將引數傳遞給 django 視圖時,您必須在 url
<type:argument_name>
和視圖引數中
設定它def viewname(request, variable1, variable2...): pass
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/489809.html
標籤:html django 网址 django-views django-模板
