上一會已經使用了超鏈接功能
這回我們要給博客添加內容了
這是今天的效果圖
1、
創建修改頁面
在templates/blog下建立edit_page.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Edit Page</title> </head> <body> <form action="{% url 'blog:edit_action' %}" method="post"> <!--將數據傳遞給後臺--> {% csrf_token %} <label>文章標題 <input type="text" name="title"/> <!--title值--> </label> <br/> <label>文章內容 <input type="text" name="content"/> <!--content值--> </label> <br/> <input type="submit" value="提交"> </form> </body> </html>
2、
修改views.py(經典的頁面操作文件)
添加下面的內容
def edit_page(request): #定義顯示頁面 return render(request, 'blog/edit_page.html') #只做頁面顯示 def edit_action(request): #頁面操作,剛剛html文件傳遞到這個函數 title = request.POST.get('title', 'TITLE') #html輸入的title值 content = request.POST.get('content','CONTENT') #html輸入的content值 models.Article.objects.create(title=title, content=content) #將title和content創建對象 articles = models.Article.objects.all() #更新 return render(request,'blog/index.html',{'articles':articles}) #返回index頁面,然後刷新已傳遞的值
3、
改完views.py,肯定要修改ursl(一一對應)
from django.conf.urls import url from . import views urlpatterns = [ url(r'^index/$', views.index), url(r'^article/(?P<article_id>[0-9]+)/$', views.article_page, name="article_page"), #多了下面兩行 url(r'^edit/$', views.edit_page, name='edit_page'), #name是標識 url(r'^edit/action$', views.edit_action, name='edit_action'), ]
打開:http://127.0.0.1:9999/blog/edit/action
回到index.html,完善一下新文章,讓他跳轉到添加文章的頁面去
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1><a href="#">我的博客</a> </h1> <h2><a href="{% url 'blog:edit_page' %}">新文章</a> </h2> <!-- 主要來這裏{% url 'blog:edit_page' %}跳轉到blog標識下的edit_page頁面--> {% for articles in articles %} <a href="{% url 'blog:article_page' articles.id %}">{{ articles.title }}</a> <br/> {% endfor %} </body> </html>