可能重复:
Python中的动态模块导入
可能是一个简单的问题!我需要遍历从设置文件传递的类列表(作为字符串).这些类列出如下:
TWO_FACTOR_BACKENDS = (
'id.backends.AllowToBeDisabled', # Disable this to enforce Two Factor Authentication
'id.backends.TOTPBackend',
'id.backends.HOTPBackend',
#'id.backends.YubikeyBackend',
#'id.backends.OneTimePadBackend',
#'id.backends.EmailBackend',
)
Run Code Online (Sandbox Code Playgroud)
我现在需要authenticate()在每个类上调用该函数(当然除非被注释掉).我很乐意在列表中进行迭代,我只需要知道如何将字符串转换为foreach循环中的Class对象,以便我可以authenticate在其上调用该方法.是否有捷径可寻?
这可能是一个已经解决的问题,但我无法弄清楚.我有两个相当大的整数,让我们给他们打电话start_number和end_number(他们所代表的电话号码的连续块).其他数字(表示为字符串)将被输入到我的系统,我需要使用正则表达式来匹配这个对"正则表达式的范围内",看是否串号落在开或之间start_number和end_number.
例如:
start_number = 99519000 end_number = 99519099因此
expression = "^995190[0-9][0-9]$"这样我最终可以匹配以下示例数字(一次一个地到达我的系统,并且可以随时到达):
"99519000" < - MATCH"99519055" < - MATCH"99519099" < - MATCH"99519100" < - 不匹配"99512210" < - 不匹配"41234123" < - 不匹配我如何使用python 创建正则表达式字符串模式" expression"给出任何合理的start_number和end_number?我有几个开始/结束编号'块'我必须创建正则表达式模式,我只需要一种方法来编程这些模式.
可以假设:
Start_number 永远不会少于 end_number start_number并且end_number将永远是相同的'长度'(即,当表示为字符串时,总是将具有相同数量的基本10'字符',如果它将使生活更容易.编辑:为清楚起见
我目前正在开发一个Django站点,用户可以在其中拥有多个"帐户",这样他们就可以在通过站点进行交互时在不同的公共配置文件之间无缝切换.我正在设计的内容可能会吸引每人多次注册(并且不会气馁),我只想提供这样一种方式,即用户可以将配置文件捆绑在一起,轻松切换并且只需要记录一次.
到目前为止我想到的两种方法包括:
一个(User型号+ SiteProfile型号)对和PublicProfile每个人的许多模型.AUTH_PROFILE_MODULE设置为指向SiteProfile模型.这个问题是我不能轻易使用每个对象的权限:这些权限将设置在User对象而不是公共配置文件上,因此当用户伪装成"公共配置文件"时,查看"PublicProfileA"页面的权限也将被应用. "PublicProfileB".
每人一个Account模型和许多(User模型+ UserProfile模型)对.AUTH_PROFILE_MODULE设置为指向UserProfile模型.这将具有按预期工作的权限的额外好处,并且我可以简单地具有自定义后端,其将通过如果用户当前Account以与外键具有相同对象的另一用户登录来切换用户.通过读取Account对象上的字段会发生身份验证,这意味着password每个User对象上的字段都将被浪费.
如上所述,但是继承Account自User.我曾被强烈反对这一点(原因尚不清楚).
这有什么陷阱或更好的方法吗?最终,我应该使用内置User模型作为每人一个模型来识别一组面向公众的配置文件(这些配置文件将FK返回到User对象),或者将其用作配置文件本身,链接回来Account为每个人一个对象?
django database-relations django-models django-authentication
我有一个使用 Entity Framework Core 和 SQLite Provider 的 ASP.NET Core 2.0 应用程序。我试图将 SQLite 数据库文件存储在子目录中(特别是data\database\sqlite.db),但是如果我将连接字符串设置为,Data Source=data\database\sqlite.db我一运行就会收到以下异常dbContext.Database.Migrate():
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 14: 'unable to open database file'.
如果我将其设置为Data Source=sqlite.db它,它将按预期工作,不会引发异常(但不在我需要存储它的目录中)。我需要做什么才能将 SQLite 数据库文件存储在相对于当前工作目录的子目录中?
为了上下文:我需要将 SQLite 数据库文件存储在子目录中,因为该应用程序在 Docker 容器中运行,该特定目录映射到 Docker 卷,因此在替换容器时数据库仍然存在。
c# sqlite entity-framework-core asp.net-core asp.net-core-2.0
我正在尝试在登录管理站点时覆盖Django 1.4中使用的默认表单(我的站点使用了选择双因素身份验证的用户所需的额外"令牌"字段,并且对于站点人员是必需的).Django的默认格式不支持我需要的内容.目前,我的templates/目录中有一个名为的文件templates/admin/login.html,它似乎正确地覆盖了我在我网站其余部分使用的模板.该文件的内容如下:
# admin/login.html:
{% extends "login.html" %}
Run Code Online (Sandbox Code Playgroud)
实际登录表格如下:
# login.html:
{% load url from future %}<!DOCTYPE html>
<html>
<head>
<title>Please log in</title>
</head>
<body>
<div id="loginform">
<form method="post" action="{% url 'id.views.auth' %}">
{% csrf_token %}
<input type="hidden" name="next" value="{{ next }}" />
{{ form.username.label_tag }}<br/>
{{ form.username }}<br/>
{{ form.password.label_tag }}<br/>
{{ form.password }}<br/>
{{ form.token.label_tag }}<br/>
{{ form.token }}<br/>
<input type="submit" value="Log In" />
</form>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当使用我的普通登录URL访问时,提供的表单完全正常,因为我提供了自己AuthenticationForm作为要显示的表单,但是通过Django Admin登录路径,Django喜欢将它自己的表单提供给此模板,因此只有username和 …
我拼命地想让 Celery 与 Django 很好地合作,但没有成功。我被以下问题绊倒了:
项目/设置.py:
...
import djcelery
djcelery.setup_loader()
BROKER_URL = 'django://'
CELERY_RESULT_BACKEND = 'django://'
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ENABLE_UTC = True
...
Run Code Online (Sandbox Code Playgroud)
应用程序/任务.py:
from celery.task import task
@task()
def scheduled_task(param1, param2):
...
return something
Run Code Online (Sandbox Code Playgroud)
直接调用scheduled_task(param1, param2)(没有装饰器)可以按预期工作。然而,当添加装饰器并启动“开发”芹菜工人时,如下所示:
python manage.py celery worker --loglevel=info
Run Code Online (Sandbox Code Playgroud)
...我收到以下错误:
TypeError: 'module' object is not callable
Run Code Online (Sandbox Code Playgroud)
我已将其固定给@task装饰者。我尝试的每个组合都失败了,包括:
from celery import task
from celery.task import task
from celery.task.base import task
@task
@task()
@task.task
@task.task()
@celery.task
@celery.task()
Run Code Online (Sandbox Code Playgroud)
异常中的调用堆栈似乎没有任何区别,它们似乎都认为这task是一个模块,并且不可调用!让事情变得更令人沮丧的是: …
我目前正在开发一个PHP站点,并且在本地(开发)和生产站点上使用Git(我的Web服务器上的repo使用后接收挂钩部署到Web根目录),其详细信息是在toroid.org的'使用Git管理网站'文章中概述.
问题是我还有一个config.php文件(用于连接到我的本地开发环境(MySQL的本地安装与测试数据)和我的远程"生产"Web服务器之间不同的数据库(其中)有它自己的'实时'数据库).每当我将我的更改推送到网站时,配置文件随之而来,并用连接到(不存在的)开发设置的设置替换我的"实时"配置!然后我必须手动SSH到我的Web服务器并替换config.php文件,有点击败目的!
有什么方法可以让Git ...有点'desynchronize'config.php文件?"开发"config.php永远不会保存到git仓库中,当生产服务器将PHP脚本等部署到Web根目录时,它也应该保持现有的"生产"config.php文件不变.
有没有办法用Git做到这一点?万分感谢您的建议!
TC
这应该很简单,但是我正在试着想一想如何解决这个问题!
我的网站侧面有一个导航菜单,用于挑选产品.它的格式如下:
简而言之,产品属于列表,属于类别,属于类别组.它们都是一对多的关系.
我需要将这个从我的视图传递到我的模板,这样我就可以在HTML中为jquery渲染嵌套列表以使其漂亮.就像是:
<ul>
<li>Category Group</li>
<ul>
<li>Category</li>
<ul>
<li>List</li>
<li>List</li>
<li>List</li>
</ul>
<li>Category</li>
<ul>
<li>List</li>
<li>List</li>
<li>List</li>
</ul>
</ul>
<li>Category Group</li>
<ul>
<li>Category</li>
<ul>
<li>List</li>
<li>List</li>
<li>List</li>
</ul>
<li>Category</li>
<ul>
<li>List</li>
<li>List</li>
<li>List</li>
</ul>
</ul>
</ul>
Run Code Online (Sandbox Code Playgroud)
我的问题是创建所述分层列表以传递给模板,以便它可以呈现它.我知道我需要使用Model.FK_set.all()来表示"类别组"中的"类别"列表,但我无法弄清楚如何在视图中创建该列表适当的方式发送到模板.有帮助吗?Python新手,所以还在学习绳索.
django ×4
python ×4
asp.net-core ×1
c# ×1
celery ×1
deployment ×1
django-admin ×1
git ×1
gitignore ×1
model ×1
nested-lists ×1
php ×1
regex ×1
sqlite ×1