我有一个像这样的Django网址:
url(
r'^project_config/(?P<product>\w+)/(?P<project_id>\w+)/$',
'tool.views.ProjectConfig',
name='project_config'
),
Run Code Online (Sandbox Code Playgroud)
和我的views.py:
def ProjectConfig(request, product, project_id=None, template_name='project.html'):
...
# do stuff
Run Code Online (Sandbox Code Playgroud)
问题是我希望project_id参数是可选的.我想这样,project_id
并且/project_config/
都是同样有效的url模式,所以IF /project_config/12345abdce/
传递,然后我可以使用它.就目前而言,如果我尝试访问没有project_id
参数的url,我会得到404 .
嗨,我有一个令人愤怒的问题.
我有这样的网址模式:
# mproject/myapp.urls.py
url(r'^project/(?P<project_id>\d+)/$','user_profile.views.EditProject',name='edit_project'),
Run Code Online (Sandbox Code Playgroud)
它在浏览器中工作正常,但是为了测试,当我在shell中执行此操作时:
from django.test import Client
from django.core.urlresolvers import reverse
client= Client()
response = client.get(reverse('edit_project'), project_id=4)
Run Code Online (Sandbox Code Playgroud)
我害怕:
NoReverseMatch: Reverse for 'edit_project' with arguments '()' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
我正在尝试在新的virtualenv中安装matplotlib.
当我做:
pip install matplotlib
Run Code Online (Sandbox Code Playgroud)
要么
pip install http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
building 'matplotlib._png' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC - DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/usr/local/include -I/usr/include -I. -I/home/sam/django-projects/datazone/local/lib/python2.7/site-packages/numpy/core/include -I. -I/usr/include/python2.7 -c src/_png.cpp -o build/temp.linux-x86_64-2.7/src/_png.o
src/_png.cpp:10:20: fatal error: png.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
任何人都知道发生了什么事?
任何帮助非常感谢.
我在Flask中编写了一个应用程序,除了WSGI
同步和阻塞之外,它的工作原理非常好.我有一个特别的任务,它调用第三方API,该任务可能需要几分钟才能完成.我想拨打电话(实际上是一系列电话)并让它运行.控制权归还给Flask.
我的观点如下:
@app.route('/render/<id>', methods=['POST'])
def render_script(id=None):
...
data = json.loads(request.data)
text_list = data.get('text_list')
final_file = audio_class.render_audio(data=text_list)
# do stuff
return Response(
mimetype='application/json',
status=200
)
Run Code Online (Sandbox Code Playgroud)
现在,我想做的就是拥有这条线
final_file = audio_class.render_audio()
Run Code Online (Sandbox Code Playgroud)
运行并提供在方法返回时执行的回调,而Flask可以继续处理请求.这是我需要Flask异步运行的唯一任务,我想就如何最好地实现它做一些建议.
我看过Twisted和Klein,但我不确定它们是否过度,因为Threading就足够了.或者也许Celery是一个不错的选择?
我有一个很简单的问题需要解决.我有合作伙伴模型,其中有> = 0个与之关联的用户:
class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)
Run Code Online (Sandbox Code Playgroud)
现在,如果我有一个User对象并且我有一个Partner对象,那么检查User是否与Partner关联的最Pythonic方法是什么?我基本上想要一个语句,如果User
与之关联,则返回True Partner
.
我试过了:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
Run Code Online (Sandbox Code Playgroud)
这有效,但我感觉有更好的方法.另外,这很容易卷入装饰器,请记住我需要一个命名参数(slug
)和一个请求对象(user
).
任何帮助将非常感激.
我有一个像这样的小角度应用程序:
HTML
<body ng-app>
<div ng-controller="Ctrl">
<div ng-repeat="user in users | filter:1">
<span>{{ user.username }}, {{ user.id }}</span>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
app.js
function Ctrl($scope) {
$scope.users = [
{"id":1,"username":"simon",},
{"id":8,"username":"betty",},
{"id":14,"username":"archie",},
{"id":3,"username":"jumbo1"},
]
}
Run Code Online (Sandbox Code Playgroud)
产量
simon, 1
archie, 14
jumbo1, 3
Run Code Online (Sandbox Code Playgroud)
我想要做的是仅在id字段上过滤过滤器参数AND过滤器的完全匹配.
基本上,我希望输出为:
产量
simon, 1
Run Code Online (Sandbox Code Playgroud)
我正在使用Angular 1.2.
我一直在使用手动数据库选择来处理一个有两个单独的数据库的项目.我在设置中定义了我的数据库.经过一些进一步的阅读后,似乎数据库路由实际上就是这样.但是,在阅读了这里的文档和一些相关帖子后,我比以往更加困惑.
在我的设置中,我有:
DATABASES = {
'default': {
....
},
'my_db2': {
....
}
}
DATABASE_ROUTERS = ['myapp2.models.MyDB2Router',]
Run Code Online (Sandbox Code Playgroud)
我知道我必须像我这样定义我的路由器类(我认为在myapp2.models.py中):
class MyDB2Router(object):
"""A router to control all database operations on models in
the myapp2 application"""
def db_for_read(self, model, **hints):
if model._meta.app_label == 'myapp2':
return 'my_db2'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'myapp2':
return 'my_db2'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'myapp2' or obj2._meta.app_label == 'myapp2':
return True
return None
def allow_syncdb(self, …
Run Code Online (Sandbox Code Playgroud) 我有一个Django模型,我想在保存后或刚刚保存后修改对象权限.我尝试了一些解决方案,post_save
信号似乎是我想要做的最佳候选者:
class Project(models.Model):
title = models.CharField(max_length=755, default='default')
assigned_to = models.ManyToManyField(
User, default=None, blank=True, null=True
)
created_by = models.ForeignKey(
User,
related_name="%(app_label)s_%(class)s_related"
)
@receiver(post_save, sender=Project)
def assign_project_perms(sender, instance, **kwargs):
print("instance title: "+str(instance.title))
print("instance assigned_to: "+str(instance.assigned_to.all()))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,创建项目时,信号会触发,我会看到title
该assigned_to
字段的空列表.
保存后如何访问保存的assigned_to
数据?
我有一个django模型,它存储来自表单输入的用户和产品数据:
def ProductSelection(request, template_name='product_selection.html'):
...
if user.is_authenticated():
user = request.user
else:
# deal with anonymous user info
project = Project.objects.create(
user=user,
product=form.cleaned_data["product"],
quantity=form.cleaned_data["product_quantity"],
)
Run Code Online (Sandbox Code Playgroud)
当然,这对于经过身份验证的用户来说很好,但我也希望能够存储匿名用户项目,如果可能的话,在最终注册和验证时将它们与用户关联起来.
我的想法是创建名称= some_variable(时间戳与随机哈希串联?)的匿名用户,然后将该用户名保存在会话数据中.如果我确保该会话变量(如果存在)用于记录该用户的所有项目活动,我应该能够在注册时使用用户的真实凭据更新项目.
这过于复杂和脆弱吗?我是否有可能不必要地节省数千行数据?这个常见问题的最佳方法是什么?
任何有关这方面的指导都将非常感激.
我有一个简单的Flask路由,我想捕获文件的路径.如果我<path>
在规则中使用,它适用/get_dir/one
但不适用/get_dir/one/two
.如何捕获任意路径,以便path='/one/two/etc
传递给视图函数?
@app.route('/get_dir/<path>')
def get_dir(path):
return path
Run Code Online (Sandbox Code Playgroud) django ×6
python ×5
django-views ×2
flask ×2
angularjs ×1
asynchronous ×1
django-forms ×1
django-urls ×1
matplotlib ×1
pip ×1
virtualenv ×1
werkzeug ×1