美文网首页
Django学习笔记 POST上传数据

Django学习笔记 POST上传数据

作者: Ugly_K | 来源:发表于2017-01-15 00:56 被阅读74次

    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!

    当然,这里使用了设置好的数据模型来保存数据

    相关文章

      网友评论

          本文标题:Django学习笔记 POST上传数据

          本文链接:https://www.haomeiwen.com/subject/lzdybttx.html