我试图通过将字典转换为字符串,然后尝试插入,将以下字典存储到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行")
有什么建议或帮助吗?
我使用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)
我不想连接到数据库进行单元测试,因为它属于集成测试.
有没有办法模拟数据库?我知道如何对标准视图函数应用模拟,但这里模拟不起作用.
我想在 django admin 中创建一个分组下拉列表。我可以使用“choices = ()”生成一个正常的下拉列表。但我需要这样的东西。
--Tools--
Dotnet
Vstudio
-- App --
WMP
Encoder
-- ABC --
a
b
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?
如何从此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 ×4
django ×2
dictionary ×1
django-admin ×1
mocking ×1
mysql ×1
pandas ×1
unit-testing ×1