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、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM