小编Bur*_*lid的帖子

在单个视图方法中接受多个请求类型的更好方法是什么?

我正在尝试向各种请求方法公开API(GET,url x-www-form-urlencoded POST和json POST):

@app.route('/create', methods=['GET', 'POST'])
def create_file():
    if request.method == 'GET':
        n = request.args.get('n')
        t = request.args.get('t')
    if request.method == 'POST':
        if request.json:
            n = request.json['n']
            t = request.json['t']
        else:
            n = request.form['n']
            t = request.form['t']
    try:
        n = int(n)
    except:
        n = 1
    ...
Run Code Online (Sandbox Code Playgroud)

以上看起来过于冗长.是否有更简单或更好的写作方式?谢谢.

python flask

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

比较两个列表,只打印差异?(XORing两个列表)

我正在尝试创建一个函数,该函数接收2个列表并返回仅具有两个列表的差异的列表.

例:

a = [1,2,5,7,9]
b = [1,2,4,8,9]
Run Code Online (Sandbox Code Playgroud)

结果应该打印出来 [4,5,7,8]

到目前为止的功能:

def xor(list1, list2):
    list3=list1+list2
    for i in range(0, len(list3)):
        x=list3[i]
        y=i
        while y>0 and x<list3[y-1]:
            list3[y]=list3[y-1]
            y=y-1
        list3[y]=x

        last=list3[-1]
    for i in range(len(list3) -2, -1, -1):
        if last==list3[i]:
            del list3[i]
        else:
            last=list3[i]

    return list3 
print xor([1,2,5,7,8],[1,2,4,8,9])
Run Code Online (Sandbox Code Playgroud)

第一个for循环对它进行排序,第二个删除重复项.问题是结果 [1,2,4,5,7,8,9]不是[4,5,7,8],所以它没有完全删除重复项?我可以添加什么来做到这一点.我不能使用任何特殊模块,.sort,set或任何东西,基本上只是循环.

python python-2.7

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

无法打开流:没有这样的文件或目录

任何人都可以帮助这个吗?我是网络开发的新手,不知道这个错误意味着什么?

警告:fopen(images/nophoto.png):无法打开流:第101行/home/u835626360/public_html/remove.html中没有此类文件或目录

不能打开此文件/图片您需要关闭

码:

$expire=time()-3600;
setcookie("dname","a", $expire);
setcookie("dpode","a", $expire);
}
function delpics($filename)
{
$path_to_file='userpics/';
$old = getcwd(); // Save the current directory
    chdir($path_to_file);
    $fh = fopen($filename, 'w') or die("can't this file/picture is open you need close ");
    fclose($fh);
    if (!unlink($filename))
  {
  echo ("Error deleting $file");
  }
else
  {
  echo ("Deleted  $filename");
  }
    chdir($old); // Restore the old working directory   
}
Run Code Online (Sandbox Code Playgroud)

php

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

Rails 3 - 使用json上传图片

在我的Rails 3应用程序中,我有多个模型,每个模型都与另一个模型相关联.

User 模型

has_many :departments
accepts_nested_attributes_for :departments
Run Code Online (Sandbox Code Playgroud)

Department 模型

has_many :projects
accepts_nested_attributes_for :projects
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用JSON 通过邮递员REST客户端插入数据.我找到了一些格式,除了模型中有一个图像上传字段User,我将用PaperClipgem 处理.

通过我的rails视图它工作正常,但如何使用邮递员上传图像?

要通过REST客户端上传,我需要与我的图像等效的JSON格式.

有没有办法在json中嵌入图像所以我可以使用postman rest客户端?

json ruby-on-rails binary-data paperclip ruby-on-rails-3

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

是<head>标记是默认情况下不显示的常规标记

我注意到在浏览Chrome的网页时<head>标签已{display: none;}分配了CSS .

这让我想到,<head>标签只是浏览器决定不显示的常规标签

即使这没有明显的用途,我是否可以在<cheese>标签的位置<head>使用标签并使用css "cheese {display: none;}"来实现与<head>标签相同的功能?

html

8
推荐指数
2
解决办法
1128
查看次数

交错列表功能

让我们说我有两个功能:

f :: [a] -> b
g :: [a] -> c
Run Code Online (Sandbox Code Playgroud)

我想写一个与此相当的函数:

h x = (f x, g x)
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,对于大型列表,我不可避免地会耗尽内存.

一个简单的例子如下:

x = [1..100000000::Int] 
main = print $ (sum x, product x)
Run Code Online (Sandbox Code Playgroud)

我理解这种情况是因为列表x存储在内存中而没有被垃圾回收.这将是最好的,而不是fg工作有关x的,那么,"平行".

假设我不能改变fg,也不要打一个单独的副本x(假设x生产成本很高)我怎么能写h,而不会在内存不足的问题?

haskell

8
推荐指数
2
解决办法
269
查看次数

具有批量收集的表函数会抛出无效的数据类型

我正在写一个函数,我想用表函数包装它,所以我可以使用选择查询.

这是我的类型声明和我的函数的一些行

CREATE OR REPLACE PACKAGE TYPES 
    AS 
        TYPE CURSORTYPE IS REF CURSOR; 

        TYPE vbugsrec
          IS
             RECORD (
                bug_id     bugs.bug_id%TYPE,
                facility   bugs.facility%TYPE
             );

          TYPE vbugstable
          IS
             TABLE OF vbugsrec
                INDEX BY BINARY_INTEGER;

    END;


      /
    CREATE OR REPLACE PACKAGE BODY CustomQueries
    AS
       FUNCTION pendverifylist (myldapid   IN userpass.ldapalias%TYPE,
                                maxrows    IN PLS_INTEGER:= CustomQueries.maxrecords)
          RETURN types.vbugstable
       IS
          datarows    types.vbugstable; 
          var_useralias userpass.ldapalias%TYPE
                := UPPER (pendverifylist.myldapid) ;

        CURSOR pendverify_cur (
             cursor_var_alias         IN            userpass.ldapalias%TYPE,
             cursor_var_mybugstatus   IN            bugs.bug_status%TYPE,
             cursor_var_wild          IN            qa_list.component%TYPE
          )
          IS
             SELECT   buglist.bug_id, buglist.facility
               FROM   bugs …
Run Code Online (Sandbox Code Playgroud)

oracle

8
推荐指数
2
解决办法
9751
查看次数

在Django中组织设置

我正在研究Django项目,该项目使用位于项目根目录中的几个"设置"文件中指定的几十个配置变量:

--> myproject
------> app folders
------> ...
--- settings.py
--- settings_global.py
--- settings_production.py
--- settings_development.py
Run Code Online (Sandbox Code Playgroud)

然后根据某些运行时参数(主机名等)在settings.py文件中导入来自不同settings_*文件的变量.这一切都运行得很好,但有时候仍然很难找到某个变量,所以我想重新组织设置变量并将它们分成几个类别:

  • 项目特定的变量
  • django特定的变量
  • 安装了应用程序的特定变量(例如django_compressor的设置等)
  • 环境特定变量(生产/开发)

另外我想将所有设置文件但settings.py文件移动到settings子目录:

--> myproject
------> app folders
------> ...
------> settings
---------- __init__.py
---------- common.py
---------- production.py
---------- development.py
---------- apps.py
---------- ...
--- settings.py
Run Code Online (Sandbox Code Playgroud)

我已经创建了settings子目录(以及空__init__.py文件)并复制/重命名了设置文件.然后我尝试在我的setting.py文件中导入这些变量,如下所示:

from settings.common import *
from settings.apps import *
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误(即使在settings/common.py文件中存在ROOT_URLCONF):

AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

django

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

如何返回n对圆括号的所有有效组合?

def paren(n):
    lst = ['(' for x in range(n)]
    current_string = ''.join(lst)
    solutions = list()
    for i in range(len(current_string)+1):
        close(current_string, n, i, solutions)
    return solutions

def close(current_string, num_close_parens, index, solutions):
    """close parentheses recursively"""
    if num_close_parens == 0:
        if current_string not in solutions:
            solutions.append(current_string)
        return
    new_str = current_string[:index] + ')' + current_string[index:]
    if num_close_parens and is_valid(new_str[:index+1]):
        return close(new_str, num_close_parens-1, index+1, solutions)
    else:
        return close(current_string, num_close_parens, index+1, solutions)

def is_valid(part):
    """True if number of open parens >= number of close parens in …
Run Code Online (Sandbox Code Playgroud)

python recursion backtracking

7
推荐指数
2
解决办法
4110
查看次数

子进程调用ffmpeg(命令行)

我一直在我的程序中加入子进程调用.我对其他命令的子进程调用没有任何问题,但是我无法获得命令行输入

ffmpeg -r 10 -i frame%03d.png -r ntsc movie.mpg
Run Code Online (Sandbox Code Playgroud)

在subprocess.call()内部工作

我尝试了以下但没有成功:

subprocess.call('ffmpeg -r 10 -i %s frame%03.d.png - r ntsc movie.mpg')
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?我是否将不同的命令分开,是否指定了字符串,整数等%s,%d

python command-line subprocess ffmpeg

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