小编Pau*_*aul的帖子

SQLAlchemy create_all()不创建表

我正在尝试集成PostgreSQL和SQLAlchemy,但SQLAlchemy.create_all()不是从我的模型创建任何表.

我的代码:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://login:pass@localhost/flask_app'
db = SQLAlchemy(app)
db.create_all()
db.session.commit()

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, username, email):
        self.username = username
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.username

admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
users = User.query.all()
print users        
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误: sqlalchemy.exc.ProgrammingError: (ProgrammingError) relation "user" does not exist

我怎样才能解决这个问题?

python postgresql sqlalchemy

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

nginx:[emerg]"http"指令在/ etc/nginx/sites-enabled/default中不允许:1

我是NGINX的新手,我正在尝试设置最小的工作量.所以我试图用nginx和supervisor运行aiohttp mini-app(通过这个例子).但我无法正确配置Nginx并收到以下错误:

nginx: [emerg] "http" directive is not allowed here in /etc/nginx/sites-enabled/default:1
Run Code Online (Sandbox Code Playgroud)

这是完整的default.conf文件:

http {
  upstream aiohttp {
    # Unix domain servers
    server unix:/tmp/example_1.sock fail_timeout=0;
    server unix:/tmp/example_2.sock fail_timeout=0;
    server unix:/tmp/example_3.sock fail_timeout=0;
    server unix:/tmp/example_4.sock fail_timeout=0;
  }

  server {
    listen 80;
    client_max_body_size 4G;

    server example.com;

    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_redirect off;
      proxy_buffering off;
      proxy_pass http://aiohttp;
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

看起来很正确.server指令是http应该的.http是父指令.我做错了什么?

nginx

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

如果我们有GIL,为什么我们需要线程锁?

我相信这是一个愚蠢的问题,但我仍然找不到它.实际上最好将它分成两个问题:

1)我是对的,我们可以有很多线程但是因为GIL在一瞬间只有一个线程正在执行?

2)如果是这样,为什么我们还需要锁?我们使用锁来避免两个线程试图读/写某些共享对象的情况,因为GIL twi线程无法在一瞬间执行,可以吗?

python multithreading

20
推荐指数
2
解决办法
2462
查看次数

git rebase - 继续没有变化

我有两个分支,有两个功能:banch_1branch_2. branch_2使用来自的功能branch_1.我所做的变化branch_1,并希望变基branch_2branch_1从中获取改变branch_1branch_2.

所以,我正在检查branch_2:

git checkout branch_2
Run Code Online (Sandbox Code Playgroud)

并尝试在branch_1上重新定义:

git rebase branch_1
Run Code Online (Sandbox Code Playgroud)

之后我得到两个文件的'合并冲突'.所以我跑了

git mergetool -t meld
Run Code Online (Sandbox Code Playgroud)

并解决这些冲突,从中选择更改branch_1.

我正在保存文件并转到终端,输入 git status并看到git索引没有变化.接下来,我跑git rebase --continue和获取

No changes - did you forget to use 'git add'? 
Run Code Online (Sandbox Code Playgroud)

错误.但没有什么可补充的!我键入git log并查看提交branch_1但没有提交branch_2.

我做错了什么?

git git-rebase

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

是否可以使用scss从目录导入字体?

我有一个scss文件,以这种方式实现字体导入:

@import url(https://fonts.googleapis.com/css?family=PT+Sans+Caption:400,700&subset=latin-ext,cyrillic); 
Run Code Online (Sandbox Code Playgroud)

我知道使用CDN可以为用户提供缓存优势,但这是内部站点,可以在服务器上使用而无需访问wide web.而且我不确定用户机器是否也可以访问Internet.所以我想用其他页面静态文件服务前端.

SCSS中有没有办法从服务器上的某个目录导入字体?就像是:

@import dir(/path/to/fonts/file)
Run Code Online (Sandbox Code Playgroud)

或者SCSS没有这个功能?

sass

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

将动态字段添加到django管理模型表单

我需要将包含我网站上模型视图链接的字段添加到django管理视图中.当我将字段名称添加到list_display和定义用于呈现此URL的方法时:

class SetAdmin(admin.ModelAdmin):
    list_display = ['many other fields', 'show_set_url']

    def show_set_url(self, obj):
            return '<a href="#">Set</a>' # render depends on other fields
Run Code Online (Sandbox Code Playgroud)

它显示在django admin中的Sets列表中,但不是以模型形式显示.如何修复此问题并在django admin中添加指向"设置表单"的链接?

我也试过为这个模型创建自定义表单:

from core.models import Set
from django import forms

class SetAdminForm(forms.Form):
    class Meta:
        model = Set

    def __init__(self, *args, **kwargs):
        super(SetAdminForm, self).__init__(*args, **kwargs)
        self.fields['foo'] = forms.IntegerField(label=u"Link")
Run Code Online (Sandbox Code Playgroud)

但现在形式上有明显的效果.

python django

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

区分假和0

我有一个愚蠢但问题.假设我有一个包含不同值的列表.像这样:

[1,2,3,'b', None, False, True, 7.0]
Run Code Online (Sandbox Code Playgroud)

我想迭代它并检查每个元素是否都不在某些禁用值的列表中.例如,这个列表是[0,0.0].

当我检查是否为假时,[0,0.0我得到了True.我知道python会False转到0这里.但我怎么能避免它并使这个检查正确 - 该False值不在[0,0.0]列表中?

python

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

用装饰器修补模块中的所有函数

我有一个带有很多函数的 python 模块,我想为所有函数应用一个装饰器。有没有一种方法可以通过猴子修补来修补所有这些,以便为每个函数应用这个装饰器,而无需在应用装饰器的行上复制粘贴?

换句话说,我想替换这个:

@logging_decorator(args)
func_1():
  pass

@logging_decorator(args)
func_2():
  pass

@logging_decorator(args)
func_3():
  pass


@logging_decorator(args)
func_n():
  pass
Run Code Online (Sandbox Code Playgroud)

有了这个:

patch_func():
  # get all functions of this module
  # apply @logging_decorator to all (or not all) of them

func_1():
  pass

func_2():
  pass

func_3():
  pass

func_n():
  pass
Run Code Online (Sandbox Code Playgroud)

python

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

pytest monkeypatch.setattr()在测试类方法内部

我有一个测试类,其中包含很少的测试方法,并且我想从测试方法中修补一些应用程序类和方法。在pytest文档中,我找到了一个有关如何使用Monkeypatch模块进行测试的示例。该示例中的所有测试仅是函数,而不是testclass方法。

但是我有一个带有测试方法的类:

class MyTest(TestCase):
   def setUp():
     pass

   def test_classmethod(self, monkeypatch):
     # here I want to use monkeypatch.setattr()
     pass
Run Code Online (Sandbox Code Playgroud)

而且,仅将monkeypatch方法参数作为参数传递显然是行不通的。因此,看起来py.test魔术无法以这种方式工作。

因此,问题很简单,甚至可能很愚蠢:如何 monkeypatch.setattr()从测试类方法中将pytest用于内部?

python pytest

4
推荐指数
2
解决办法
2465
查看次数

就 rpm 规格而言,“%{__install}”是什么意思?

也许这是一个非常愚蠢的问题,但我找不到答案。直到今天我才尝试为 rpm 包编写规范文件。我找到了一个规范的示例,并且在该部分中看到了很多%{__install}想法%install。据我所知,它的语法是万能之王。但规范文件中没有对此进行任何解释。在我的示例中,它看起来像这样:

%install
%{__install} -pD -m 644 $RPM_BUILD_DIR/my-project-%{version}/deploy/my-project.service $RPM_BUILD_ROOT/usr/lib/systemd/system/my_project-emperor.service
Run Code Online (Sandbox Code Playgroud)

我还在我发现的其他规范中看到了很多使用此宏的示例。像 这样那样。它们具有相同的语法:

%{__install} -s %{name} %{buildroot}%{_sbindir}/
%{__install} -c -m 644 examples/acl-content-sw.cfg %{buildroot}%{_sysconfdir}/%{name}/%{name}-acl-content-sw.cfg.example
%{__install} -c -m 644 examples/auth.cfg %{buildroot}%{_sysconfdir}/%{name}/%{name}-auth.cfg.example
Run Code Online (Sandbox Code Playgroud)

%{__install}实际上是什么?rpm 构建器的某种内置宏?很难用谷歌搜索或在官方文档中找到它,但看起来这是一种常见的东西。

linux rpm rpmbuild rpm-spec

4
推荐指数
2
解决办法
3294
查看次数