在 settings.py 中,我从环境中获取 var,如下所示:
ROBOTS_STR = os.environ.get('DJANGO_ROBOTS_STR')
Run Code Online (Sandbox Code Playgroud)
我的环境变量设置在一个文件中,如下所示:
DJANGO_ROBOTS_STR=User-agent: *\nDisallow: /admin\nDisallow: /api
Run Code Online (Sandbox Code Playgroud)
问题是,在视图中,当我获取 settings.ROBOTS_STR 时,字符串的值已自动转义。这是:User-agent: *\\nDisallow: /admin\\nDisallow: /api
我怎样才能改变这种行为?请注意,我使用的是 Python 3.3
我正在使用Heroku和Django.
使用dj-database-url模块以这种方式在settings.py中配置数据库:
DATABASES = {'default': dj_database_url.config()}
如何添加其他参数,例如ATOMIC_REQUESTS?在"正常"的情况下,我会这样做:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
'ATOMIC_REQUESTS': True,
}
}
Run Code Online (Sandbox Code Playgroud) 这是一个地址:
address = "35 rue de trucmuche, 75009 PARIS"
Run Code Online (Sandbox Code Playgroud)
我想75009使用正则表达式提取地址中的邮政编码 ( )。
我试过这个:
reg = re.compile('^.*(P<zipcode>\d{5}).*$')
match = reg.match(address)
match.groupdict().zipcode # should be 75009
Run Code Online (Sandbox Code Playgroud)
我得到一个:
AttributeError: 'NoneType' object has no attribute 'groupdict'
我认为我的正则表达式是错误的。我不明白为什么。
在两个不同的模板中,我有两个几乎相同的块,只是 url 不同:
<div class="col-sm-4">
<a href="{% url 'bo:article-list' %}" class="btn btn-block btn-secondary btn-sm"
role="button">
<i class="fa fa-chevron-left"></i> Annuler
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
<div class="col-sm-4">
<a href="{{ article.get_absolute_url }}" class="btn btn-block btn-secondary btn-sm"
role="button">
<i class="fa fa-chevron-left"></i> Annuler
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我想让这个变得干燥,创建一个模板,然后进行包含。例如:
<div class="col-sm-4">
<a href="{{ cancel_url }}" class="btn btn-block btn-secondary btn-sm"
role="button">
<i class="fa fa-chevron-left"></i> Annuler
</a>
Run Code Online (Sandbox Code Playgroud)
对于template2.html,它将与:
{% include 'includes/_cancel.html' with cancel_url=article.get_absolute_url %}
Run Code Online (Sandbox Code Playgroud)
但是template1.html呢?这显然不起作用:
{% include 'includes/_cancel.html' with cancel_url={% url 'bo:article-list' %}
Run Code Online (Sandbox Code Playgroud)
我想有一个技巧。感谢您的帮助 :)
当在本地运行单元测试时,在某个时间点,它完全冻结,我不明白出了什么问题。即使我使用最大详细选项运行测试,我也不知道-v3。
我认为这不可能与测试本身有关,因为它们曾经通过,或者在 CI 中仍然通过。另外,它并不总是在同一阶段冻结。
--reverse我尝试使用其他选项(例如或)运行测试--parallel任何想法?如何调试这个?
我正在尝试做一些简单的事情,例如使用 sed 重命名文件夹的所有文件。目的是在文件夹的每个文件前面添加一个模式。
在使用“mv”命令实际重命名文件之前,我使用“echo”命令来确保文件名正确。
我在 MAC OSX 上(使用 Iterm2)。我找到了不同的解决方案,但它根本不起作用。这是我所做的:
for f in *.mkv
do
test1=`echo $f | sed -E 's/^(.*)$/^S01E(.*)$/g'`
test2=$(echo $f | sed 's#^(.*)$#^S01E(.*)$#')
echo "$f"
echo "$test1"
echo "$test2"
done
$test1 output: ^S01E(.*)$
$test2 output : the filename itselft
Run Code Online (Sandbox Code Playgroud) 非常简单的问题,但我找不到我应该在两个不同事件上执行函数的方式:加载页面时和复选框更改时.
现在,这就是我所拥有的.它可以工作,但它是supid因为不干:
<script>
$(document).ready(function(){
if ($("#visit_mode").prop('checked')){
$("#cart_div").hide();
$("#visit_div").show();
}
if ($("#cart_mode").prop('checked')){
$("#visit_div").hide();
$("#cart_div").show();
}
});
$(".checkbox").change(function() {
if ($("#visit_mode").prop('checked')){
$("#cart_div").hide();
$("#visit_div").show();
}
if ($("#cart_mode").prop('checked')){
$("#visit_div").hide();
$("#cart_div").show();
}
});
</script>
Run Code Online (Sandbox Code Playgroud) 这是models.py中的一个类:
class Shop(models.Model):
...
code = models.CharField(max_length=4, default=generate_random_code())
Run Code Online (Sandbox Code Playgroud)
可以想象,generate_random_code()总是返回一个不同的字符串.
问题是,Django迁移引擎丢失了,因为每次我做一个python manage.py makemigrations,我得到一个新的修改Alter field tablet_code on shop.我想这是因为函数被执行了,但它不应该,所以Django认为我修改了代码.
你怎么解决这个问题?谢谢.
## tests file
@mock.patch('profiles.models.create_stripe_charge', StripeMocks._mock_raises_stripe_error)
def my_test(self):
# ... stuff
## logic file
def create_stripe_charge(customer, amount_in_cents, capture=True):
# ... stuff
## mocks file
class StripeMocks:
def _mock_raises_stripe_error(self):
raise stripe.error.StripeError
Run Code Online (Sandbox Code Playgroud)
运行测试时,我遇到了_mock_raises_stripe_error() takes 1 positional argument but 3 were given'错误。
我知道我正在尝试用 1-args 方法模拟 3-args 方法,但是如果我只想告诉 Python:拜托,无论我的create_stripe_charge方法有多少个参数,我只想模拟它引发的情况一个例外。
执行此操作的正确语法是什么?谢谢。
我使用自定义User,我有一个email_verified该用户的字段.我希望当用户登录时,如果此字段是,则拒绝false.
我无法做到这一点,views.py因为用户可以从各种来源(Django站点,但REST API)登录.整个目的是避免为N个登录源写入N次逻辑.我想重写的方法(login()?authenticate()在models.py?)做一次.
我很快阅读了有关自定义身份验证的文档,但没有找到我正在寻找的内容.
感谢帮助.
python ×7
django ×6
unit-testing ×2
bash ×1
docker ×1
heroku ×1
javascript ×1
jquery ×1
macos ×1
mocking ×1
postgresql ×1
python-3.3 ×1
regex ×1
sed ×1