温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Django如何获取前端数据

发布时间:2023-02-24 16:20:48 来源:亿速云 阅读:109 作者:iii 栏目:开发技术

这篇文章主要介绍“Django如何获取前端数据”,在日常操作中,相信很多人在Django如何获取前端数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Django如何获取前端数据”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    Django获取前端传输的数据的几种方式

    获取拼接在url上的数据

    class UrlData(View):
        def get(self, request):
        	# request的GET方法获取拼接在url上数据的对象
            dict1 = request.GET
            # get方法根据key取value
            name = dict1.get('name')
            age = dict1.get('age')
            return HttpResponse('get--{}--{}'.format(name, age))

    测试

    Django如何获取前端数据

    获取post请求提交的表单数据

        def post(self, request):
        	# request的POST方法获取表单数据对象
            dict1 = request.POST
            # 同样是get获取数据
            name = dict1.get('name')
            age = dict1.get('age')
            return HttpResponse('post--{}--{}'.format(name, age))

    postman测试

    Django如何获取前端数据

    获取json数据

    class JsonData(View):
        def post(self, request):
        	# request的body方法获取的是所有请求体的二进制数据
            json_body = request.body
            print(json_body)
    		# 把请求体的二进制数据转换为json格式
            json_data = json.loads(json_body)
    		#get方法键值对方式获取值
            name = json_data.get('name')
            age = json_data.get('age')
            gender = json_data.get('gender')
    
            return HttpResponse('name: {},age: {}, gender: {}'.format(name, age, gender))

    打印台结果

    Django如何获取前端数据

    测试

    Django如何获取前端数据

    提取路径数据

    class LuJData(View):
    	""" 多传一个变量age """
        def get(self, request, age):
            return HttpResponse('age: {}'.format(age))

    注册视图时代码

    注意: 注册时使用的转换器里的变量名要 和 视图里获取数据的变量名的一致

    urlpatterns = [
        path('users/urldata/', views.UrlData.as_view()),
        path('users/jsondata/', views.JsonData.as_view()),
        # 使用int转换器  <转换器: 变量名>  
        # 变量名要和视图函数添加的那个变量一样的名字
        path('users/lujdata/<int:age>/', views.LuJData.as_view()),
    ]

    测试

    Django如何获取前端数据

    自定义转换器

    当匹配url数据的时候有要求就可以使用自定义转换器

    工程目录添加converters.py文件

    Django如何获取前端数据

    自定义转换器内容

    class MobileConverter:
    	# regex是正则表达式
        regex = '1[3-9]\d{9}'
    	# 模仿Django自带转换器
        def to_python(self, value):
            return int(value)
    
        def to_url(self, value):
            return str(value)

    在工程目录的urls.py文件中注册转换器

    # 参数1 为自定义转换器类 参数2 起了一个别名
    register_converter(MobileConverter, 'mobile')

    注册视图函数时使用自定义转换器

    urlpatterns = [
        path('users/urldata/', views.UrlData.as_view()),
        path('users/jsondata/', views.JsonData.as_view()),
        # 使用自定义转换器
        path('users/lujdata/<mobile:age>/', views.LuJData.as_view()),
    ]

    测试

    Django如何获取前端数据

    re_path匹配视图时直接写正则

    Django如何获取前端数据

    如何从前端获取数据,post到后台,再入数据库呢

    首先,从前端获取值。这里需要你自己去掌握怎么取,我只是总结一下我这个过程!下边我是想能同时上传多个文件,所以才嵌套的循环。

    Django如何获取前端数据

    然后,根据对应的url,找到相关的model(这里,需要了解好你的数据库属性)。比如,这里是我想入库的model:

    Django如何获取前端数据

    好了,看完这个,我们去前端所post到的assign(),这里我们需要掌握一下

    Django如何获取前端数据

    # 筛选条件:name和task_tags,所以不能用get(),而是用filter()
    condition_filter = {'task_tags':task_id, 'name':file_name}
     
    # 得到一个Queryset
    testrawdata_Qset = TestRawData.objects.using('oracle').filter(**condition_filter)
     
    # 获得Queryset的值(这里我需要的是id)
    for testrawdata in testrawdata_Qset:
        data_id = testrawdata.id

    get_or_create()就是入库了,看看入库结果(成功!):

    Django如何获取前端数据

    到此,关于“Django如何获取前端数据”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI