小编Vb4*_*407的帖子

如何通过python将python字典存储到mysql DB中

我试图通过将字典转换为字符串,然后尝试插入,将以下字典存储到mysql DB中,但我收到以下错误.如何解决这个问题,还是有其他方法将字典存储到mysql DB中?

dic = {'office': {'component_office': ['Word2010SP0', 'PowerPoint2010SP0']}}
d = str(dic)

# Sql query
sql = "INSERT INTO ep_soft(ip_address, soft_data) VALUES ('%s', '%s')" % ("192.xxx.xx.xx", d )

soft_data is a VARCHAR(500)
Run Code Online (Sandbox Code Playgroud)

错误:执行异常(1064,"您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'office'附近使用正确的语法:{'component_office':['Word2010SP0','PowerPoint2010SP0 '在第1行")

有什么建议或帮助吗?

python mysql dictionary

12
推荐指数
1
解决办法
2万
查看次数

如何为django-rest-framework api编写单元测试?

我使用Django-rest-framework视图集和路由器公开了我的数据库模型,我正在尝试为它编写单元测试.

这是我的API和测试代码

Viewsets.py

class Model1ViewSet(viewsets.ReadOnlyModelViewSet):

    model = Model1
    serializer_class = Model1Serializer
    filter_class = Model1Filter
    filter_backends = (filters.DjangoFilterBackend, filters.OrderingFilter)
    ordering = ('id', 'cl1')
Run Code Online (Sandbox Code Playgroud)

Serializer.py

class Model1Serializer(serializers.HyperlinkedModelSerializer):
    chip = serializers.HyperlinkedRelatedField(view_name="some-detail")

    class Meta:
        model = Model1
        fields = ('url', 'id', 'cl1', 'cl2', 'cl3', 'cl4')
        depth = 1
Run Code Online (Sandbox Code Playgroud)

单元测试

from rest_framework.test import APIClient

class TestModel1Api(unittest.TestCase):

    def setUp(self):
        self.client = APIClient()

    def test_Model1_list(self):
        response = self.client.get(reverse('Model1-list'))
        self.assertEqual(response.status_code, status.HTTP_200_OK)

    def test_Model1_detail(self):
        mm_objs = Model1.objects.all()
        if mm_objs:
            response = self.client.get(reverse('Model1-detail', args=[mm_objs[0].id]))
            self.assertEqual(response.status_code, status.HTTP_200_OK)
Run Code Online (Sandbox Code Playgroud)

我不想连接到数据库进行单元测试,因为它属于集成测试.

有没有办法模拟数据库?我知道如何对标准视图函数应用模拟,但这里模拟不起作用.

  1. 如何为我的REST-API编写单元测试?
  2. 如何在我的单元测试中模拟数据库?

python django unit-testing mocking django-rest-framework

10
推荐指数
1
解决办法
1万
查看次数

如何在 django admin 中创建分组下拉列表?

我想在 django admin 中创建一个分组下拉列表。我可以使用“choices = ()”生成一个正常的下拉列表。但我需要这样的东西。

--Tools--
   Dotnet
   Vstudio
-- App --
  WMP
  Encoder
-- ABC --
   a
   b
Run Code Online (Sandbox Code Playgroud)

如何实现这一目标?

python django django-admin

2
推荐指数
1
解决办法
492
查看次数

使用pandas在数据框架中创建动态列

如何从此pandas数据框创建动态列.

 Name, Sex
    a, M
    b, F
    c, M
    d, F
Run Code Online (Sandbox Code Playgroud)

预期数据框:

Name, M, F
a, 1, 0
b, 0, 1
c, 1, 0
d, 0, 1
Run Code Online (Sandbox Code Playgroud)

我试过pandas.pivot()但没有用,你们可以提出一些建议.

python pandas

1
推荐指数
1
解决办法
852
查看次数