上一会已经使用了超链接功能
这回我们要给博客添加内容了
这是今天的效果图
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>
时间: 2024-10-24 18:46:00