小编som*_*me1的帖子

如果您使用'with'语句打开文件,是否仍需要关闭文件对象?

对于打开文件,我习惯了显然较旧的语法:

f = open("sub_ranks.txt","r+")
for line in f:
    ...
f.close()
Run Code Online (Sandbox Code Playgroud)

我被告知现在使用这种语法几次...

with open("sub_ranks.txt", "r+") as f:
    for line in f:
        ...
Run Code Online (Sandbox Code Playgroud)

在使用"with"语句时,第二个示例中仍然需要文件对象"close"语句吗?

如果是这样,是否有任何具体的理由使用"with"语句进行文件读取?在这种情况下,它(稍微)更冗长.

python import file

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

如何在PSQL中编辑函数

我在PGADMIN中创建了一个默认函数,但服务器没有该软件.

如何使用PSQL编辑该功能?

我见过的最接近的是

\df+ function_name
Run Code Online (Sandbox Code Playgroud)

但输出是乱码而不可编辑.


这将使用默认编辑器打开该功能.

\ef function_name()
Run Code Online (Sandbox Code Playgroud)

但是当我保存它时,它会保存为......

bin文件夹中的"/tmp/psql.edit.20631.sql",

这似乎不正确.

postgresql function psql

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

Postgres 中小数和数字有什么区别?

我根据之前的一些建议将数据库中的一列从“金钱”更改为“数字”。

查看 postgres 中的数据类型 - https://www.postgresql.org/docs/current/static/datatype-numeric.html - 我在描述中看不到数字和十进制之间的任何差异。

小数和数字之间有什么区别,有什么理由我应该在数据库中使用数字而不是小数作为价格?

postgresql

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

在 PostgreSQL 中插入空值会导致错误

我的表有三列,但我只对大多数行使用一列。

我正在尝试在 PSQL 中进行基本插入,如下所示:

grouper=> INSERT INTO master_list VALUES ('Ebay',,);
Run Code Online (Sandbox Code Playgroud)

但我收到语法错误:

ERROR:  syntax error at or near ","
LINE 1: INSERT INTO master_list VALUES ('Ebay',,);
                                               ^
Run Code Online (Sandbox Code Playgroud)

欢迎任何意见或建议!

sql postgresql insert

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

"串行"列是否自动成为PostgreSQL中的主键?

我在Postgres中创建了下表...

create table printq (
   model varchar(20),
   session integer,
   timestamp timestamp DEFAULT now(),
   id serial);
Run Code Online (Sandbox Code Playgroud)

它似乎正是我需要它...它自动递增id列,当我使用truncate"RESTART IDENTITY"清除表时,它重置序列(这就是我首先重建表的原因 - 用于在截断时不重新启动的id列)

无论如何,当我在桌面上做一个\ d时,我看不到关于主键的任何信息.

Table "public.printq"
  Column   |            Type             |                      Modifiers                      
-----------+-----------------------------+-----------------------------------------------------
 model     | character varying(20)       | 
 session   | integer                     | 
 timestamp | timestamp without time zone | default now()
 id        | integer                     | not null default nextval('printq_id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)

三个问题:

  • ID列是否已成为主键,因为它自动递增?

  • 如果没有,为什么这个表需要一个主键,因为它似乎工作正常?我知道基本上每个表都应该有一个主键,但为什么呢?

  • 最后,\ d命令会告诉我这个表是否有主键吗?如果没有,会告诉我什么?

postgresql primary-key psql

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

在Postgres中添加时间戳列的语法

在这里研究之后,我想使用"带时区的时间戳",但无法根据postgres文档找出正确的语法.

ALTER TABLE microwaves ADD COLUMN scanned_in DATA_TYPE timestamp with time zone;

ALTER TABLE microwaves ADD COLUMN scanned_in TYPE timestamp with time zone;
Run Code Online (Sandbox Code Playgroud)

两者都抛出错误.

任何帮助表示感谢,谢谢.

postgresql ddl timestamp

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

确认Postgres“更新”查询在python中有效

我已经用python编写了我的第一个“更新”查询,虽然看起来正确,但是我不确定如何接收回输出以确认其工作。

应该加载一个CSV文件,并将第一列中的值替换为第二列中的值:

def main():
    try:
        conn=psycopg2.connect("dbname='subs' user='subs' host='localhost' password=''")
    except:
        print "I am unable to connect to the database."
        sys.exit()

    with open("dne.txt", "r+") as f:
        for line in f:
            old = line.split(',')[0].strip()
            new = line.split(',')[1].strip()
            cur = conn.cursor()
            cur.execute("UPDATE master_list SET subs = '{0}' WHERE subs = '{1}';".format(new, old))
            conn.commit()
            results = cur.fetchall()
            for each in results:
                print str(each)


if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我以为结果(每次更改都为UPDATE 1吗?)会以元组形式返回,但我却报错:

psycopg2.ProgrammingError: no results to fetch
Run Code Online (Sandbox Code Playgroud)

我不确定这是否意味着我的查询无法正常工作并且没有更新,或者我不能像尝试那样使用fetchall()。

欢迎任何反馈或建议!

python postgresql

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

Nginx成功地用密码保护了PHP文件,但随后提示您下载它们

在上一个问题中,我尝试使用带有.htpasswd和regex的Nginx密码保护我的/ admin /和子文件夹目录。

该操作已成功完成,但是现在,密码验证完成后,Nginx会提示“下载” php文件,而不是简单地加载它们。

当新位置“身份验证”块被注释掉时,不会发生这种情况。例如,在此代码示例中,PHP页面加载没有任何问题:

    location / {
            try_files $uri $uri/ =404;
    }

    #location "~^/admin/.*$" {
    #       try_files $uri $uri/ =404;
    #       auth_basic "Restricted";
    #       auth_basic_user_file /etc/nginx/.htpasswd;
    #}

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
Run Code Online (Sandbox Code Playgroud)

我该如何解决这些(显然是冲突的)位置块,所以/ admin /部分受密码保护,但php文件仍然加载?

php nginx .htpasswd

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

使用.htpasswd密码保护Nginx文件夹中的文件

我正在尝试使用.htpasswd来保护我的域上的/ admin /部分.

我能够使用此配置成功保护根index.php文件:

    location /admin/ {
            try_files $uri $uri/ =404;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }
Run Code Online (Sandbox Code Playgroud)

但该文件夹中的相关文件仍可查看.例如,在http://domain.com/admin/whatever.php上 - 页面加载,然后出现Nginx密码身份验证,但您可以简单地取消它并仍然查看页面.

做了一些研究后,我试图使用正则表达式通配符失败.

不起作用:

    location "~^/admin/.$" {
            try_files $uri $uri/ =404;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }
Run Code Online (Sandbox Code Playgroud)

不起作用:

    location "~^/admin/*\$" {
            try_files $uri $uri/ =404;
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }
Run Code Online (Sandbox Code Playgroud)

我如何密码保护根索引,以及任何子文件夹和文件?过去/ admin /的所有内容都应该无法访问.

nginx .htpasswd

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

如何从perl数组中删除长元素?

我有一个perl数组,其中不应超过20个字符.有时,错误地输入较长的字符串.

如何"清理"这些较长字符串的perl数组?有没有办法长一点?就像是..

@blurbs = grep([size<=20],@blurbs);
Run Code Online (Sandbox Code Playgroud)

arrays perl grep

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

PHP表单:无法修改标头信息 - 已发送的标头

我知道这个问题已被多次询问,但是,我似乎无法找到与我的情况相关的解决方案,因为它们主要处理wordpress.

这是我的邮件表格:

 <?php 
 $to = "email@gmail.com" ; 
 $from = $_REQUEST['email'] ; 
 $name = $_REQUEST['name'] ; 
 $headers = "From: $from"; 
 $subject = "Contact Submission From domain.com"; 

 $fields = array(); 
 $fields{"name"} = "name"; 
 $fields{"title"} = "title"; 
 $fields{"email"} = "email"; 
 $fields{"phone"} = "phone"; 
 $fields{"prefer_phone"} = "pref_phone"; 
 $fields{"prefer_email"} = "pref_email";
 $fields{"message"} = "message";
 $fields{"referral"} = "referral"; 

 $body = "Here is their submitted message:\n\n"; foreach($fields as $a => $b){  $body .= sprintf("%20s: %s\n\n",$b,$_REQUEST[$a]); } 

 if($from == '') {print "You have not entered an email, please …
Run Code Online (Sandbox Code Playgroud)

php redirect contact-form

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

无法在python中保存文件

试图在python中保存文件:

g = open('~/ccna_pages/'+filename, 'w')
g.write(page)
g.close()
Run Code Online (Sandbox Code Playgroud)

得到此错误:

回溯(最近一次调用最后一次):文件"dl-pages.py",第50行,g = open('〜/ ccna_pages /'+ filename,'w')IOError:[Errno 2]没有这样的文件或目录: '〜/ ccna_pages/1.0.1.1.html'

但是,该目录确实存在于该位置.

这个语法似乎是python文档推荐的.. http://docs.python.org/release/1.5/tut/node46.html

我错过了什么?谢谢..

python file

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

删除VIM中的一个和两个字母行?

我有一个包含一堆城市名称的数据源,但混合使用的是很多不应该存在的州缩写.

在VIM中有没有办法删除每行而不是包含两个或更少的字符?

regex vim

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