Django學習筆記 POST上傳數據

2017/1/14 23:29:24


Django學習筆記 POST上傳數據

普通的GET請求就不多說了
這一次的需求是需要把一些數據通過POST回傳到后端

1 請求URL&視圖函數

首先我們創建一個url接收器:

    from django.conf.urls import url
    from django.contrib import admin
    from MyBlog import views

    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^upload/$',views.recieve_data),
    ]

這里views.receive_data函數就是對應處理post請求的視圖函數

接下來我們創建一個處理POST請求的視圖函數:

    def recieve_data(request):
        if request.method == 'POST':
            ...
            return render(request,'Base.html')
        else:
            return render(request,'Base.html')

這里可以看到,在視圖函數中我們對請求做了判斷:是否為POST請求,使用的request.method屬性

在判斷了POST以后我們對我們具體的數據內容進行分析,先看一下我們的html內容:

很明確,當用戶點擊提交按鈕之后,我們將日志的標題以及內容傳送回后端

    $("#textSave").click(function(){
        //獲取輸入的標題以及內容
        var textTitle=$("#formGroupInputLarge").val()
        var textHtml=editor.$txt.html()
        var textShort=editor.$txt.text()
        //通過post方式回傳
        $.post("/upload/",
        {
            title:textTitle,
            content:textHtml,
            shortContent:textShort
        };

這里使用了jQuery的異步請求方式

    $.post("/upload/",
        {
            title:textTitle,
            content:textHtml,
            shortContent:textShort
        }

$.post()參數最多三個,分別為:url/data/回調函數

這里沒有回調函數,返回的數據為標題/內容/純文本內容

那么我們如何在視圖函數中獲取這些請求的數據呢?

解決方法當然都在我們的必備參數request之中:

    def recieve_data(request):
        if request.method == 'POST':
            title=request.POST['title']
            content=request.POST['content']
            shortContent = request.POST['shortContent']
            revisedTime='%d' % time.time()
            SKBlog.objects.create(title=title,revisedTime=revisedTime,content=content,shortContent=shortContent)
            print(SKBlog.objects.get(title=title).shortContent)
            return render(request,'Base.html')
        else:
            return render(request,'Base.html')

通過request.POST[參數key]來獲取對應的數據內容

測試一下:

輸出了我們的內容,OK!

當然,這里使用了設置好的數據模型來保存數據

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容