上一会已经使用了超链接功能
这回我们要给博客添加内容了
这是今天的效果图
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 urlfrom . import viewsurlpatterns = [ 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>