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!

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容