Django--post提交表单内容
本节目标:
①、提交表单内容
②、通过客户端提交表单新增一篇文章
③、通过Django的forms组件来完成新增一篇文章
=======提交表单内容========
1、前端html:login.html
<div> <form method="post"> username:<input class="" name="username" type="text"> password:<input class="" name="password" type="password"> <input type="submit" value="确定"> </form> </div>
2、新增一个视图函数:
def login(request): username=request.POST.get('username','');------------>POST.get('',''),来获取提交值 password=request.POST.get('password',''); return render(request,'login.html',{ 'username':username, 'password':password })
3、配置路由
项目级路由
urlpatterns = [ path('admin/', admin.site.urls), path('blog/', include('blog.blog_urls')), path('login/',include('blog.blog_urls')) ]
应用级路由
urlpatterns = [
path('get_article_list',get_article_list),
path('get_article',get_article),
#path('get_detail',get_detail)
path('get_detail/<int:article_ID>',get_detail),
path('login',login)
]
4、调试---出现一个403问题
产生原因:CSRF,百度一下发现这是跨站请求伪造,其实就是Django已经帮我们做了CSRF验证,我们在做POST提交时候需要加上csrf_token(就是一个随机码)来完成csrf验证
解决方式:修改html代码
<form method="post"> {%csrf_token%}-----------a用来验证csrf的,原因未知,加上即可 username:<input class="" name="username" type="text"> password:<input class="" name="password" type="password"> <input type="submit" value="确定"> </form>
5、最终调试结果---成功
======通过客户端提交表单新增一篇文章======
#新增一个帖子 def add(request): article_title=request.POST.get('article_title',""); article_prief=request.POST.get('article_prief',""); article_content = request.POST.get('article_content', ""); add_article=Article(article_title=article_title,article_prief_content=article_prief,article_content=article_content); add_article.save(); return render(request,'add.html',{ 'article_title':article_title, 'article_prief':article_prief, 'article_content': article_content, })
2、html代码
<div> <form class="navbar-form navbar-left" role="search" method="post"> {%csrf_token%} <div class="form-group"> <input type="text" class="form-control" name="article_title" placeholder="帖子标题"> <input type="text" class="form-control" name="article_prief" placeholder="帖子小标题"> <input type="text" class="form-control" name="article_content"placeholder="帖子内容"> </div> <button type="submit" class="btn btn-default">提交</button> </form> {{ article_content }} {{ article_prief }} {{ article_title}} </div>
3、调试结果----成功
=====通过Django的forms组件来完成新增一篇文章=====
1、