Django获取前端数据的实现方式

 更新时间:2023年02月20日 17:26:39   作者:B.Bz  
这篇文章主要介绍了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))

测试

获取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测试

获取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))
        

打印台结果

测试

提取路径数据

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()),
]

测试

自定义转换器

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

工程目录添加converters.py文件

自定义转换器内容

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()),
]

测试

re_path匹配视图时直接写正则

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

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

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

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

# 筛选条件: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()就是入库了,看看入库结果(成功!):

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python使用latexify模块实现将代码为数学公式

    Python使用latexify模块实现将代码为数学公式

    latexify 是一个轻量级的 Python 模块,可以将 Python 代码转换为 LaTeX 格式的数学表达式,这篇文章就来和大家探索一下如何使用latexify模块实现将代码为数学公式吧
    2023-12-12
  • Python使用protobuf序列化和反序列化的实现

    Python使用protobuf序列化和反序列化的实现

    protobuf是一种二进制的序列化格式,相对于json来说体积更小,传输更快,本文主要介绍了Python使用protobuf序列化和反序列化的实现,感兴趣的可以了解一下
    2021-05-05
  • python实现获取序列中最小的几个元素

    python实现获取序列中最小的几个元素

    这篇文章主要介绍了python实现获取序列中最小的几个元素,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • django 按时间范围查询数据库实例代码

    django 按时间范围查询数据库实例代码

    这篇文章主要介绍了django 按时间范围查询数据库实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Django 接收Post请求数据,并保存到数据库的实现方法

    Django 接收Post请求数据,并保存到数据库的实现方法

    今天小编就为大家分享一篇Django 接收Post请求数据,并保存到数据库的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python之dlib包安装失败问题及解决

    python之dlib包安装失败问题及解决

    这篇文章主要介绍了python之dlib包安装失败问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python3匿名函数lambda介绍与使用示例

    Python3匿名函数lambda介绍与使用示例

    这篇文章主要给大家介绍了关于Python3匿名函数lambda与使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python3具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • OpenCV中Canny边缘检测的实现

    OpenCV中Canny边缘检测的实现

    本文主要介绍了OpenCV中Canny边缘检测的实现,边缘检测一般是识别目标图像中亮度变化明显的像素点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Python全面解析json数据并保存为csv文件

    Python全面解析json数据并保存为csv文件

    这篇文章主要介绍了Python全面解析json数据并保存为csv文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Python三目运算符(三元运算符)用法详解(含实例代码)

    Python三目运算符(三元运算符)用法详解(含实例代码)

    三元运算符在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断,在Python 2.4以上才有了三元操作,下面这篇文章主要给大家介绍了关于Python三目运算符(三元运算符)用法的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论