小编Abe*_*Abe的帖子

django:使用json对象测试基于POST的视图

我有一个django应用程序,有几个视图通过POST请求接受json对象.json对象是中等复杂的,有几层嵌套,所以我使用json库来解析raw_post_data,如下所示:

def handle_ajax_call(request):
    post_json = json.loads(request.raw_post_data)

    ... (do stuff with json query)
Run Code Online (Sandbox Code Playgroud)

接下来,我想为这些视图编写测试.不幸的是,我无法弄清楚如何将json对象传递给客户端.这是我的代码的最简单的版本:

def test_ajax_call(self):
    c = Client()
    call_command('loadfixtures', 'temp-fixtures-1') #Custom command to populate the DB

    J = {
      some_info : {
        attr1 : "AAAA",
        attr2 : "BBBB",
        list_attr : [ "x", "y", "z" ]
      },
      more_info : { ... },
      info_list : [ 1, 22, 23, 24, 5, 26, 7 ]
    }

    J_string = json.dumps(J)
    response = c.post('/ajax/call/', data=J_string )
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,它失败了:

AttributeError: 'str' object has no attribute 'items'
Run Code Online (Sandbox Code Playgroud)

如何在Client.post方法中传递JSON对象?

django ajax json unit-testing

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

我应该在python中使用哪些库进行线性编程?

快速搜索"python线性编程"会产生大量的点击(例如这一点).通过它们,我看到了相当多的关于过时的依赖关系,糟糕的文档等的抱怨.

任何人都可以为python推荐一个没有头痛的(例如快速,文档齐全,易于安装,干净的API)线性编程库吗?

python mathematical-optimization linear-programming

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

在django的login_required装饰器中抑制"?next = blah"行为

我喜欢django的@login_required装饰,但有一点我无法弄清楚如何做到这一点.

如果未经身份验证的用户尝试访问@login_required页面(例如"/ private-stuff /"),我想将其踢回主页(例如"/ home /").但我不想在网址上附加"?next ="参数.换句话说,我只想重定向到"/ home /",而不是"/ home /?next =/private-stuff /".

我怎样才能做到这一点?有没有比写自己的装饰更好的方法?

django django-authentication

18
推荐指数
2
解决办法
5065
查看次数

django:胖子模特和瘦小的控制者?

这是一个通用的架构问题.我在许多地方读到,在MVC框架中,(1)模型应该很胖,控制器应该是瘦的.但我也读到(2)细节取决于你正在开发的框架.那么,如果你在django中开发呢?

我对django的经验是,很多逻辑最终会被放入视图和表单中.不是"业务逻辑",而是处理请求,会话等的细节.在代码行方面,这些细节往往超过操纵模型对象的业务逻辑.我做错了什么,或者这是django的工作方式?

python django model-view-controller

17
推荐指数
2
解决办法
5776
查看次数

django上的管理页面已损坏

我已经设置了一个带有管理页面的django项目.它在开发的前几周完美运行,暂时没有使用管理页面,当我回到它时,管理页面被破坏了.无论我做什么,它都不允许我登录.

输入用户名和PW后,管理页面总是说:

Please enter a correct username and password. Note that both fields are case-sensitive. 
Run Code Online (Sandbox Code Playgroud)

我检查了数据库:超级用户存在并且is_active,is_superuser和is_staff全部为True.我已经使用shell来确保密码正确.我已多次刷新,删除并重新创建数据库,以确保没有错误.我还对中间件,网址,INSTALLED_APPS等进行了双重检查,以确保它们都已正确设置.

据我所知,管理页面完美运行,但他们从不让任何人登录.

任何想法在这里发生了什么,或尝试调试的其他方法?我真的对这个bug感到困惑.

PS:如果重要的话,我使用South进行数据库迁移,使用django-social-auth进行FB登录,并将local_settings.py用于生产和开发(我已经检查了它们 - 冲突不存在. )

django django-admin

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

龙卷风将GET和POST参数映射到列表.如何禁用此"功能"?

tornado*web框架中的HTTPRequest类有助于将GET和POST参数映射到列表.我理解为什么 - 如果多次使用给定的参数名称.但是对于一些RequestHandler来说,这是一种痛苦.例如,如果我想传递一个json对象并在服务器上按原样解析它.

什么是最直接的方法来禁用map-to-list行为,以便我可以将未经改动的json发送到龙卷风/旋风服务器?

*Cyclone,实际上,万一这里有实现差异.

python json tornado cyclone

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

在mongodb中哪些操作便宜/昂贵?

我正在阅读MongoDB,并试图了解它最适合的地方.我没有看到明确答案的一个问题是哪些操作便宜或昂贵,以及在什么条件下.

你能帮忙澄清一下吗?

谢谢.

mongodb

13
推荐指数
2
解决办法
2631
查看次数

以编程方式将列名添加到numpy ndarray

我正在尝试将列名添加到numpy ndarray中,然后按名称选择列.但它不起作用.当我添加名称时,或者稍后当我尝试调用它们时,我无法判断问题是否发生.

这是我的代码.

data = np.genfromtxt(csv_file, delimiter=',', dtype=np.float, skip_header=1)

#Add headers
csv_names = [ s.strip('"') for s in file(csv_file,'r').readline().strip().split(',')]
data = data.astype(np.dtype( [(n, 'float64') for n in csv_names] ))
Run Code Online (Sandbox Code Playgroud)

基于维度的诊断符合我的预期:

print len(csv_names)
>> 108
print data.shape
>> (1652, 108)
Run Code Online (Sandbox Code Playgroud)

"print data.dtype.names"也返回预期的输出.

但是当我开始按字段名称调用列时,就会发生棘手的事情."列"仍然是一个包含108列的数组......

print data["EDUC"].shape
>> (1652, 108)
Run Code Online (Sandbox Code Playgroud)

...它似乎包含比数据集中的行更多的缺失值.

print np.sum(np.isnan(data["EDUC"]))
>> 27976
Run Code Online (Sandbox Code Playgroud)

知道这里出了什么问题吗?添加标题应该是一个简单的操作,但我已经打了几个小时这个bug.救命!

python arrays numpy multidimensional-array

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

龙卷风中的单元测试

我正在使用mongodb作为后端在tornado.web中构建一个简单的Web应用程序.90%的服务器端代码库都存在于一组RequestHandler中,90%的数据对象都是json.因此,测试处理程序的基本用例是:

"Given Request Y and DB in state X,
 verify that handler method Z returns json object J"
Run Code Online (Sandbox Code Playgroud)

我该如何设置这种测试?

我在这个主题上找到了一些博客文章和讨论主题,但他们主要关注的是设置asyncronous.我找不到任何关于设置正确类型的DB状态或GET/POST请求参数的信息.

python unit-testing tornado

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

在 langchain 中一起使用 Chain 和 Parser

langchain 文档包含此示例,用于配置和调用PydanticOutputParser

# Define your desired data structure.
class Joke(BaseModel):
    setup: str = Field(description="question to set up a joke")
    punchline: str = Field(description="answer to resolve the joke")
    
    # You can add custom validation logic easily with Pydantic.
    @validator('setup')
    def question_ends_with_question_mark(cls, field):
        if field[-1] != '?':
            raise ValueError("Badly formed question!")
        return field

# And a query intented to prompt a language model to populate the data structure.
joke_query = "Tell me a joke."

# Set up a parser + …
Run Code Online (Sandbox Code Playgroud)

openai-api langchain

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