小编Aks*_*ari的帖子

如何使用 Python Pyramid 处理多个数据库

我想使用 Python Pyramid Framework 和 SQL Alchemy 处理多个数据库。

我有 1 个包含用户信息的数据库,以及多个存储应用程序信息的数据库(具有相同的结构)。每个用户在登录时选择一个数据库,并且只显示来自该数据库(而不是其他数据库)的信息。

我应该如何构建我的代码?

我正在考虑在会话中保存 dbname 并在每个请求中检查所选数据库的用户权限并生成一个新的 db 会话。所以我的观点看起来像(伪代码):

@view_config(route_name='home', renderer='json')

def my_view_ajax(request):

    try:

        database = int(request.GET['database'])

        # check user permissions from user database

        engine = create_engine('postgresql://XXX:XXX@localhost/'+database)

        DBSession.configure(bind=engine)

        items = DBSession.query('table').all()

    except DBAPIError:

        return 'error'

    return items
Run Code Online (Sandbox Code Playgroud)

我应该使用每个请求的用户信息生成一个新的数据库会话吗?或者,还有更好的方法?

谢谢

python database sqlalchemy pyramid

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

将非空单元格在分组列熊猫中向左移动

我有一个数据框,其中有多个具有相似列名的列。我希望用右侧有数据的列填充空单元格。

Address1     Address2     Address3     Address4     Phone1     Phone2     Phone3     Phone4
ABC          nan          def          nan          9091-XYz   nan        nan        XYZ-ABZ
Run Code Online (Sandbox Code Playgroud)

应该将列移到类似的位置

Address1     Address2     Address3     Address4     Phone1     Phone2     Phone3     Phone4
ABC          def          nan          nan          9091-XYz   XYZ-ABZ    nan        nan 
Run Code Online (Sandbox Code Playgroud)

还有另一个问题可以解决类似的问题。

pdf = pd.read_csv('Data.txt',sep='\t')

# gets a set of columns removing the numerical part
columns = set(map(lambda x : x.rstrip('0123456789'),pdf.columns))

for col_pattern in columns:
    # get columns with similar names
    current = [col for col in pdf.columns if col_pattern in col]
    coldf= pdf[current]
    # …
Run Code Online (Sandbox Code Playgroud)

python nan shift multiple-columns pandas

3
推荐指数
2
解决办法
1497
查看次数

Django:ValueError:基数为10的int()的无效文字:

我在django尝试一些东西.只是一个简单的表单,它将添加每次登录数据库的尝试.它导致ValueError:对于带有基数10的int()的无效文字:我检查了很多问题但是无法通过此错误.

我有这样的看法.

class LoginView(TemplateView):
    template_name = 'dashboard/login.html'
    def post(self,request):

        #firstname,email=request.POST['firstname'],request.POST['email']
        #currLogin = LoginForm(firstname,email)
        currLogin = LoginForm(request.POST)
        if currLogin.is_valid():
            firstname= currLogin.cleaned_data['firstname']
            email = currLogin.cleaned_data['email']
            print firstname,email
            users = LoginModel.objects.filter(email=email)

            if not users:
                login = LoginModel(firstname,email)
                login.save()
            else :
                return users[0].id 
        return 0
Run Code Online (Sandbox Code Playgroud)

我的models.py文件包含:

class LoginModel(models.Model):
    firstname = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

我的form.py包含这个:

class LoginForm(forms.Form):
    firstname = forms.CharField(label="firstname",max_length=100)
    email = forms.CharField(label="email",max_length=100)
    class Meta:
        model = LoginModel
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪 :

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request) …
Run Code Online (Sandbox Code Playgroud)

python django

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

日期范围之间每个日期的汇总计数

我想找到每个城市的每个日期的计数,其中我的日期范围由两列 start_date 和 end_date 指定。

假设我创建了一个具有这样值的表。

create table abc (city varchar(30),start_date date , end_date date);

insert into abc values('a','2018-01-01','2018-01-03');
insert into abc values('b','2018-01-02','2018-01-05');
insert into abc values('a','2018-01-03','2018-01-06');
insert into abc values('b','2018-01-03','2018-01-03');
insert into abc values('a','2018-01-02','2018-01-02');
insert into abc values('b','2018-01-02','2018-01-05');
Run Code Online (Sandbox Code Playgroud)

我希望找到每个日期城市 a 和 b 的计数。在这里它应该告诉我这个。

a, 2018-01-01,1
a, 2018-01-02,2
a, 2018-01-03,2
a, 2018-01-04,1
a, 2018-01-05,1
a, 2018-01-06,1
b, 2018-01-02,2
b, 2018-01-03,3
b, 2018-01-04,2
b, 2018-01-05,2
Run Code Online (Sandbox Code Playgroud)

如果这是一个单一的日期,一个团体就会这样做。

任何帮助表示赞赏。

postgresql aggregate-functions

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

ImportError 没有模块命名视图

我对 Django 很陌生。我刚刚配置了它并尝试创建一个简单的 Hello world!Web应用程序。我正在一步一步地学习教程。我运行命令 python django-admin.py startproject mysite 它创建了 mysite 目录,其中另一个名为 mysite 的目录与 manage.py 一起在其中。子目录 mysite 有init .py init .pyc settings.py settings.pyc urls.py urls.pyc wsgi.py wsgi.pyc。

在外部 mysite 目录中,我创建了 views.py,其中包含以下代码:-

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world!")
Run Code Online (Sandbox Code Playgroud)

在内部 mysite 目录中,在 urls.py 中,我有以下代码:-

from django.conf.urls import patterns, include, url
from mysite.views import *

urlpatterns = patterns('',
    url(r'^hello/$', 'mysite.views.hello'),
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:-

ImportError at /hello/

No module named views

Request Method:     GET
Django Version:     1.6.2
Exception Type:     ImportError
Exception Value: …
Run Code Online (Sandbox Code Playgroud)

django

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

如何使用rabbitmq-delayed-message-exchange插件在rabbitmq中发送延迟消息?

我已经安装了插件来从这里发送延迟消息rabbitmq-delayed-message-exchange

我找不到在 python 中使用它的任何帮助。我刚刚开始使用 rabbitmq 。

这是我一直在尝试的:

import pika  
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.exchange_declare("test-x", type="x-delayed-message", arguments={"x-delayed-type":"direct"})  
channel.queue_declare(queue='task_queue',durable=True)
channel.queue_bind(queue="task_queue", exchange="test-x", routing_key="task_queue")
channel.basic_publish(exchange='test-x',routing_key='task_queue',body='Hello World! Delayed',arguments={"x-delay":100})
print(" [x] Sent 'Hello World! Delayed'")
connection.close()
Run Code Online (Sandbox Code Playgroud)

以下是列出的交易所:

sudo rabbitmqctl list_exchanges
Listing exchanges ...
amq.direct  direct
test-x  x-delayed-message
amq.fanout  fanout
amq.match   headers
amq.headers headers
    direct
amq.rabbitmq.trace  topic
amq.topic   topic
amq.rabbitmq.log    topic
Run Code Online (Sandbox Code Playgroud)

我不知道如何将延迟参数传递给 basic_publish 函数

任何帮助表示赞赏

python rabbitmq

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

在Javascript中从不在数组中的对象中删除键

假设我有一个包含许多键的对象列表,我只想保留其中的某些键。这就是我的做法。

SO 上其他好的解决方案的问题是,如果键中不存在键以保持它仍然添加一个键,值未定义的值。

let data = [{
   'a': 1,
   'b': 2,
   'c': 3
 }, 
 {
   'a': 1,
   'c': 3,
   'd': 4
 }]

const keys_to_keep = ['a', 'b']

data = data.map((obj) => {
  Object.keys(obj).forEach(function(key) {
    if(!keys_to_keep.includes(key))
      delete obj[key]
  });
  return obj;
})
Run Code Online (Sandbox Code Playgroud)

输出 :

[ { a: 1, b: 2 }, { a: 1} ]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来完成这项工作。任何帮助表示赞赏。

javascript node.js

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

如何在创建Django模型时填充表格?

我有一个城市列表(简单的cvs文件),我想在创建城市模型时填充citeis表.课程描述:

class City(models.Model):
    city = modeld.CharField('city_name', max_length=50)

    class Meta:
        berbuse_name =....
        ...........

    def __unicode__(self):
        return self.city
Run Code Online (Sandbox Code Playgroud)

现在,我正在寻找的是在创建模型(DB表)时如何只执行一次.

我试图在这里做,因为这对我来说听起来很逻辑(比如在MS-sql等中构建一个sql脚本)

编辑:好吧,我想我问的是错误的....也许这个:我如何创建一个python函数,它将获取cvs文件并将其转换为json(同样,在模型本身,当它正在构建时)我应该这样做吗?

任何人都可以帮我这个吗?

python django django-models

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

应用函数以使用DataFrame中的多个列获取逗号分隔的字符串并创建第三列

我试图连续排序名称并创建一个逗号分隔的字符串,这将创建另一列.

这是我的示例data.frame.

df=data.frame(A=c("A","K","B","D","F"),B =c("E","C","D","A","K"))

  A B
1 A E
2 K C
3 B D
4 D A
5 F K
Run Code Online (Sandbox Code Playgroud)

我想要获得的输出将是这样的

  A B C
1 A E A , E
2 K C C , K
3 B D B , D
4 D A A , D
5 F K F , K
Run Code Online (Sandbox Code Playgroud)

到目前为止,我试过这个:

lapply(df,FUN=paste(sort(df$A,df$B),collapse=" , "))
mapply(FUN= function(x,y)paste(sort(x,y),collapse=" , "),df$A,df$B)
Run Code Online (Sandbox Code Playgroud)

在这里,我尝试对列值进行排序并使用它们来粘贴它们','以创建唯一的对名称.

任何帮助表示赞赏.

r

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

按键列表中存储为键值对的元组的总和值

我有一个清单 [('a',2),('a',3),('b',3),('c',2),('b',4)]

我想总结所有类似的键,并获得[('a',5),('c',2),('b',7)]任何顺序是好的.

有没有更好的方法来做这个而不是使用字典.最好使用列表理解之类的东西[i for j in a for ...]

>>> a = [('a',2),('a',3),('b',3),('c',2),('b',4)]
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for i,j in a:
...   d[i] += j 
... 
>>> d
defaultdict(<type 'int'>, {'a': 5, 'c': 2, 'b': 7})
>>> zip(d.keys(),d.values())
[('a', 5), ('c', 2), ('b', 7)]
Run Code Online (Sandbox Code Playgroud)

python tuples sum list

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