我正在尝试集成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
我怎样才能解决这个问题?
我是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是父指令.我做错了什么?
我相信这是一个愚蠢的问题,但我仍然找不到它.实际上最好将它分成两个问题:
1)我是对的,我们可以有很多线程但是因为GIL在一瞬间只有一个线程正在执行?
2)如果是这样,为什么我们还需要锁?我们使用锁来避免两个线程试图读/写某些共享对象的情况,因为GIL twi线程无法在一瞬间执行,可以吗?
我有两个分支,有两个功能:banch_1和branch_2.
branch_2使用来自的功能branch_1.我所做的变化branch_1,并希望变基branch_2上branch_1从中获取改变branch_1成branch_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.
我做错了什么?
我有一个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没有这个功能?
我需要将包含我网站上模型视图链接的字段添加到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)
但现在形式上有明显的效果.
我有一个愚蠢但问题.假设我有一个包含不同值的列表.像这样:
[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 模块,我想为所有函数应用一个装饰器。有没有一种方法可以通过猴子修补来修补所有这些,以便为每个函数应用这个装饰器,而无需在应用装饰器的行上复制粘贴?
换句话说,我想替换这个:
@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) 我有一个测试类,其中包含很少的测试方法,并且我想从测试方法中修补一些应用程序类和方法。在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用于内部?
也许这是一个非常愚蠢的问题,但我找不到答案。直到今天我才尝试为 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 构建器的某种内置宏?很难用谷歌搜索或在官方文档中找到它,但看起来这是一种常见的东西。
python ×6
django ×1
git ×1
git-rebase ×1
linux ×1
nginx ×1
postgresql ×1
pytest ×1
rpm ×1
rpm-spec ×1
rpmbuild ×1
sass ×1
sqlalchemy ×1