小编vts*_*vts的帖子

django.template.loaders.app_directories.Loader无法找到模板文件

模板文件保存在app目录下,但在呈现时会引发TemplateDoesNotExist异常:

模板加载器postmortem如下:

Django尝试按以下顺序加载这些模板:

Using loader django.template.loaders.app_directories.Loader:
    ...
    $PROJECT/apps/myapp/templates/search.html (File does not exist)
    ...
Run Code Online (Sandbox Code Playgroud)

我想知道为什么它寻找:

$PROJECT/apps/myapp/templates/search.html
Run Code Online (Sandbox Code Playgroud)

而不是:

$PROJECT/apps/myapp/templates/myapp/search.html
Run Code Online (Sandbox Code Playgroud)

后者确实存在

django django-templates

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

python:logging.Logger和logging.getLogger之间的区别

是的,我看到python doc说:“记录器从未直接实例化,而是始终通过模块级函数logging.getLogger(name)进行实例化”,但是我有一个调试问题,并且想知道根本原因。

这是示例:

#!/usr/bin/python
import logging
logger = logging.getLogger("test")

format = "%(asctime)s [%(levelname)-8s] %(message)s"
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter(format, datefmt="%Y-%m-%d %H:%M:%S"))
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)

logger.info("test")
Run Code Online (Sandbox Code Playgroud)

在此处使用logging.getLogger(“ test”),将不会打印日志消息。

如果我将logging.getLogger(“ test”)更改为logging.Logger(“ test”),则将打印日志消息。

#!/usr/bin/python
import logging
logger = logging.Logger("test")

format = "%(asctime)s [%(levelname)-8s] %(message)s"
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter(format, datefmt="%Y-%m-%d %H:%M:%S"))
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)

logger.info("test")
Run Code Online (Sandbox Code Playgroud)

或者,我们可以使用logging.getLogger(“ test”)并将记录器级别设置为logging.DEBUG。

#!/usr/bin/python
import logging
logger = logging.getLogger("test")

format = "%(asctime)s [%(levelname)-8s] %(message)s"
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter(format, datefmt="%Y-%m-%d %H:%M:%S"))
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

logger.info("test")
Run Code Online (Sandbox Code Playgroud)

python logging

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

使用 alembic 为 flask_sqlalchemy 中新添加的不可为空列进行迁移时出现“ALTER”语法错误

当我向现有表添加新列 (nullable=False) 时,我需要手动更新迁移修订文件以首先添加 nullable=True 列,然后更新所有现有记录以设置该列,然后将列更改为 nullable=False。但是我遇到了“ALTER”的错误:语法错误。

这是测试脚本(test.py):

#!/usr/bin/env python
import os

import flask_migrate
from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy

basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
    'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

manager = Manager(app)
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)

migrate = flask_migrate.Migrate(app, db)
manager.add_command('db', flask_migrate.MigrateCommand)

if __name__ == '__main__':
    manager.run()
Run Code Online (Sandbox Code Playgroud)

首先,我初始化了数据库并将其升级到最新版本:

$ python test.py db init && python test.py db migrate …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask alembic

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

为什么UniqueConstraint在flask_sqlalchemy中不起作用

我想要一个替代Django的unique_together瓶子,似乎UniqueConstraint是我正在寻找的,但不适合我.

这是一个例子:

import os
from flask import Flask
from flask_script import Manager, Shell
from flask_sqlalchemy import SQLAlchemy

basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
    'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

manager = Manager(app)
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = 'users'
    __table_args__ = tuple(db.UniqueConstraint('name', 'address'))
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), nullable=False)
    address = db.Column(db.String(64), nullable=False)

    def __repr__(self):
        return '<User (%s, %s)>' % (self.name, self.address)


def make_shell_context():
    return dict(app=app, db=db, …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

perl:在哪里可以找到由*VAR =\0创建的只读变量的深层知识

我学会了一个perl语句,如:

*VAR = \0;
Run Code Online (Sandbox Code Playgroud)

$VAR在回答/sf/answers/2455826831/中创建一个只读,我试图找到更多的文档,以了解为什么$VAR在这种情况下是只读的,但没有运气,有人可以帮助解释或者指出一些关于这个主题的文件?

perl

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

正则表达式在python中识别'x:... y:... z:...'

有一个字符串,其内容格式为"x:... y:... z:...","..."代表任何字符排除':',并且可以包含任意数量的空格,我试图把这样的字符串分成['x:...','y:...','z:...'],我怎么能在python中做到这一点?

示例字符串:

'name: myname\n\naddress: myaddress1\nmyaddress2\n\nmyadress3\ncontact:mycontact\n'
Run Code Online (Sandbox Code Playgroud)

我想得到的是:

['name: myname\n\n', 'address: myaddress1,\nmyadress2,\n\nmyadress3\n', 'contact:mycontact\n']
Run Code Online (Sandbox Code Playgroud)

python regex

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

标签 统计

python ×4

sqlalchemy ×2

alembic ×1

django ×1

django-templates ×1

flask ×1

logging ×1

perl ×1

regex ×1