吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4354|回复: 5
收起左侧

[已解决] 刚学习RESTful,遇到报错(1048, "Column 'b_name' cannot be null")

 关闭 [复制链接]
thepoy 发表于 2019-9-16 12:21
本帖最后由 thepoy 于 2019-9-16 14:41 编辑

PyCharm中的REST工具。
models如下:
[Python] 纯文本查看 复制代码
class Book(models.Model):
    b_name = models.CharField(max_length=32)
    b_price = models.FloatField(default=10)

    def to_dict(self):
        return {'id': self.id, 'b_name': self.b_name, 'b_price': self.b_price}


views如下:
[Python] 纯文本查看 复制代码
@csrf_exempt
def books(request):
    if request.method == 'GET':
        data = {
            'status': 200
        }
        return JsonResponse(data)
    elif request.method == 'POST':
        b_name = request.POST.get('b_name')
        b_price = request.POST.get('b_price')

        book = Book()
        book.b_name = b_name
        book.b_price = b_price
        book.save()

        data = {
            'status': 201,
            'msg': '添加成功',
            'data': book.to_dict()
        }

        return JsonResponse(data)


用REST测试:
屏幕快照 2019-09-16 下午12.19.38.png
报错:
IntegrityError at /api/books/
(1048, "Column 'b_name' cannot be null")
Request Method:        POST
Request URL:        http://127.0.0.1:8000/api/books/?b_name=%E8%A5%BF%E6%B8%B8%E8%AE%B0&b_price=9.9
Django Version:        2.2.5
Exception Type:        IntegrityError
Exception Value:        
(1048, "Column 'b_name' cannot be null")





能力有限,实在看不出来是哪里的问题,请大佬指教一下


===================================
已解决:


pycharm的问题,换postman行了,垃圾pycharm!毁我青春!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

知心 发表于 2019-9-16 12:31
b_name 这个键的值不能为空,检查一下
 楼主| thepoy 发表于 2019-9-16 12:59
知心 发表于 2019-9-16 12:31
b_name 这个键的值不能为空,检查一下

是不能为空啊,POST本来就是要往b_name里填东西的,我搞不懂的就是为什么没能填进去
TheFeng 发表于 2019-9-16 13:01
Pycharm的问题 ,他会把post的信息打在 url上 。 请使用 postman
或者自己写一个测试API的脚本就可以了
jonasr 发表于 2019-9-16 13:06
脚本里判断下         b_name = request.POST.get('b_name')
                                b_price = request.POST.get('b_price')

如果是空 提示一下.  
应该是你用来测试POST的软件 并没有提交  B_name的值导致的 要么客户端测试的软件换一个或者你在研究研究
要么服务器里判断下 如果b_name和b_price的值是空 如何处理
一个合格的API 必然要对客户传来的值进行验证
 楼主| thepoy 发表于 2019-9-16 14:14
TheFeng 发表于 2019-9-16 13:01
Pycharm的问题 ,他会把post的信息打在 url上 。 请使用 postman
或者自己写一个测试API的脚本就可以了

666,确实是此问题,换了postman就解决了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-11 06:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表