Django入门——部分小结
使用include添加路由并设置前缀:
path('api/',include('board.urls')),
还有命名空间之类的,不过此处没有用到。
读取request传入的数据:
request是WSGIRequest对象,request.GET和request.POST都是QueryDict对象。
参考:https://www.cnblogs.com/limaomao/p/9383799.html
request.POST常用JSON格式而非form格式进行传输。
如果是form格式,则可以***.get('xxx')或者***['xxx']来获取***的xxx属性,比如
name = request.GET.get('user')
name = request.POST['user']
如果是JSON格式,则需要调用json.loads(***)方法,返回值变为Dict类型,可以用上面两种方法读取。
参考:https://www.cnblogs.com/zhangdewang/p/9222952.html
数据存储、查找与删除:
调用对象的save()方法可以将其存入数据库。清空数据库所有数据(比如Message对象)可以这样写:
Message.objects.all().delete()
可以用filter()方法查找符合某条件的实例,比如:
a = A.objects.filter(xxx=xx).first()
其中A是类,xxx是该类的某个属性,xx则是条件。这样可以找到xxx属性取值为xx的A里的第一个(first())实例。
参考:https://blog.csdn.net/qq_34244910/article/details/100746107
处理输入数据非JSON格式:
在调用json.loads(***)时会报错JSONDecodeError.
用try-except捕捉JSONDecodeError时,要注意捕捉的是json.JSONDecodeError.
这一点在postman的长长的HTML类型的报错信息里有提到,大意是“出现了JSONDecodeError,在处理的时候又出现了新的错误:JSONDecodeError命名错误”,因此才发现应该用json.JSONDecodeError.