Django 前臺傳遞數據到後臺處理

Django前後臺數據傳遞是開發中常用的需求,後臺傳遞到前臺很容易,只需定義參數進行傳遞即可,下面介紹Django 前臺傳遞數據到後臺的常用方法。

1 通過form表單進行傳遞

form表單是開發中經常使用的,無論是用戶登錄註冊還是採集信息都會使用到。通過form表單進行數據傳遞方法如下:

<form method="post" action="/infochange">
    {% csrf_token %}
    <label><font size="4px"><strong>用戶名</strong></font></label><br>
    <input type="text"  name="uname"><br>
    <label><font size="4px"><strong>密碼</strong></font></label><br>
    <input type="password"  name="password" placeholder="請在這裏輸入新密碼"><br>
    <label><font size="4px"><strong>郵箱</strong></font></label><br>
    <input type="email"  name="email" placeholder="請在這裏輸入新郵箱"><br>
    <label><font size="4px"><strong>電話</strong></font></label><br>
    <input type="text"  name="phone" placeholder="請在這裏輸入新電話"><br>
    <input type="submit" value="修改" >
</form>

上面這個簡單的例子是使用POST方法進行數據提交 實現用戶修改個人信息,當提交涉及隱私的信息時請使用POST方法,否則可以使用GET方法,但使用POST方法時必須添加{% csrf_token %} ,不添加則Django會報錯。

表單提交的路由爲infochange,在url.py文件中配置相關路由與業務邏輯函數,這裏不做介紹。

後臺接收數據方法爲:在infochange路由對應的業務邏輯函數中使用

request.POST.get('xxx') [POST方法]

request.GET.get('xxx') [GET方法]

xxx爲表單input輸入框的name屬性,實際操作中例如獲取用戶名 即可通過如下方法實現

uname = request.POST.get('uname')  

2 通過路由  ?傳遞數據

在實際操作中並不是所有情況都適合使用表單進行數據傳遞,下面結合實際項目介紹如何通過 ?參數進行傳遞。

實際需求如上圖所示,通過點擊右側查看功能查看論文摘要等詳細信息,由於數據是動態生成的,因此數據傳遞時也應該進行動態傳遞。

需求分析:通過點擊查看功能,傳遞論文標題信息到後臺業務邏輯函數(view.py),後臺業務邏輯函數通過使用models類的filter方法進行此標題對應的論文信息的獲取,因此此處涉及數據由前臺傳遞到後臺。(此處也可使用ajax處理,但使用?傳遞更爲簡便) 

需要做有兩個點:

1)點擊查看功能傳遞對應的標題

2)傳遞標題到後臺

1)通過js方法傳遞對應標題

<td width="100px"><center><button class="check" οnclick="tijiao('{{ item }}')" >查看</button></center></td>

如上代碼所示,通過對button設置點擊方法onclick,onclick方法綁定js函數 tijiao ,tijiao('{{ item }}')意思爲:item爲後臺傳遞的動態數據,即爲標題,此處的{{ item }}就是標題經過後臺傳遞到前臺後接收的寫法(動態數據,動態傳遞)。tijiao這個函數的參數即爲動態數據-標題。

2)傳遞標題到後臺

<script type="text/javascript">
        function tijiao(title) {
          var show = document.getElementById("id4");
          show.innerHTML = '<div><iframe src="/detail?title='+title+'" width="1000px" height="825px" scrolling="yes" frameborder="0"></iframe></div>'

        }
    </script>

此代碼爲tijiao函數的功能,在tijiao函數中寫入參數title,此參數的值就是1)中的動態數據{{ item }}。

var show = document.getElementById("id4"); 

此行代碼是綁定頁面,此處綁定id屬性值爲id4的div

然後使用innerHTML方法將 

 <div><iframe src="/detail?title='+title+'" width="1000px" height="825px" scrolling="yes" frameborder="0"></iframe></div>

插入到綁定的div中。

 <div><iframe src="/detail?title='+title+'" width="1000px" height="825px" scrolling="yes" frameborder="0"></iframe></div>

如上代碼是通過iframe技術進行頁面展示,src爲跳轉的路由,此處使用?進行數據傳遞。

detail爲事先定義好的路由,即爲展示論文詳細信息的頁面,?title= 即使用?進行參數傳遞,參數爲title,此參數的值爲 tijiao 函數接收的動態數據,然後通過字符串連接(使用加號連接)進行路由的拼接,這樣我們就可以把title參數對應的值傳遞到指定路由 detail中了。

由於傳遞數據不是涉及隱私的數據,因此採用GET方法進行傳遞,後臺業務邏輯detail中通過:request.POST.get('title')

即可接收前端傳來的標題信息!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章