先来配置 从主页面到 详情页的 url地址
<a href="article/{{ article.id }}" target="_blank">{{article.title}}</a>
Django超链接的目标地址:
DTL的特殊写法:
{% url ‘app_name:url_name’ param %}
其中 app_name url_name 都是在url中配置的
url函数的名称参数 的两种写法:
1、根urls 写在include()的第二个参数位置 namespace=‘blog’
2、应用下则写在url()的第三个参数位置 name=‘article_page’
url.py
from . import views
from django.conf.urls import url
urlpatterns = [
url(r'^index/', views.index, name='index'),
url(r'^article/(?P<article_id>[0-9]+)$', views.article_page, name='article'),
url(r'^article/edit/$',views.article_edit_page, name='article_edit_page'),
url(r'^article/edit/action/$', views.article_edit_page_action, name='article_edit_page_action')
]
article_page.html
<a href="{% url 'blog:article_page' article.id %}" target="_blank">{{article.title}}</a>
下面来搞 编辑页面
页面内容:标题编辑栏 内容编辑栏 提交按钮 表单组件form
编辑表单的响应函数 action post
使用request.POST[‘参数名’]获取表单数据
创建对象:
models.Article.objects.create(title,content)
views.py
def article_edit_page_action(request):
title = request.POST.get('title', '默认标题')
content = request.POST.get('content', '默认内容')
models.Article.objects.create(title=title, content=content)
articles = models.Article.objects.all()
return render(request, 'blog/index.html', {'articles': articles})
CSRF验证失败. 请求被中断. 安全性的问题 Django的安全性是比较高的
{% csrf_token %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>博客的编辑页面</title>
</head>
<body>
<form action="{% url 'blog:article_edit_page_action' %}" method="post">
{% csrf_token %}
<label>博客标题
<input type="text" name="title">
</label>
<br>
<label>博客内容
<input type="text" name="content">
</label>
<br>
<input type="submit" name="提交">
</form>
</body>
</html>
跨站请求伪造 网站攻击