Django应用程序中以下import语句之间的基本区别是什么?
import settings
Run Code Online (Sandbox Code Playgroud)
和
from django.conf import settings
Run Code Online (Sandbox Code Playgroud) 我有一个python dict,我想静静地从我的字典中删除其中一个None
和''
键,所以我想出了这样的东西:
try:
del my_dict[None]
except KeyError:
pass
try:
del my_dict['']
except KeyError:
pass
Run Code Online (Sandbox Code Playgroud)
如您所见,它的可读性较差,导致我编写重复的代码.所以我想知道python中是否有一个方法从dict中删除任何键而不抛出键错误?
我有一个JSON对象的字符串表示形式.
dumped_dict = '{"debug": false, "created_at": "2020-08-09T11:24:20"}'
Run Code Online (Sandbox Code Playgroud)
当我用这个对象调用json.loads时;
json.loads(dumped_dict)
Run Code Online (Sandbox Code Playgroud)
我明白了
{'created_at': '2020-08-09T11:24:20', 'debug': False}
Run Code Online (Sandbox Code Playgroud)
这里没有错.但是,我想知道是否有办法将上面的对象与json.loads转换为如下所示:
{'created_at': datetime.datetime(2020, 08, 09, 11, 24, 20), 'debug': False}
Run Code Online (Sandbox Code Playgroud)
不久,我们能够在调用json.loads时将datetime字符串转换为实际的datetime.datetime对象吗?
我是使用Django的新手,我正在尝试开发一个用户可以上传大量excel文件的网站,然后将这些文件存储在媒体文件夹Webproject/project/media中.
def upload(request):
if request.POST:
form = FileForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return render_to_response('project/upload_successful.html')
else:
form = FileForm()
args = {}
args.update(csrf(request))
args['form'] = form
return render_to_response('project/create.html', args)
Run Code Online (Sandbox Code Playgroud)
然后,文档将与列表中的任何其他文档一起显示在列表中,您可以单击该文档,它将显示有关它们的基本信息以及它们已上载的文件的名称.从这里我希望能够使用以下链接再次下载相同的excel文件:
<a href="/project/download"> Download Document </a>
Run Code Online (Sandbox Code Playgroud)
我的网址是
urlpatterns = [
url(r'^$', ListView.as_view(queryset=Post.objects.all().order_by("-date")[:25],
template_name="project/project.html")),
url(r'^(?P<pk>\d+)$', DetailView.as_view(model=Post, template_name="project/post.html")),
url(r'^upload/$', upload),
url(r'^download/(?P<path>.*)$', serve, {'document root': settings.MEDIA_ROOT}),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误,serve()得到了一个意外的关键字参数'document root'.谁能解释如何解决这个问题?
要么
说明如何使用上传的文件进行选择和提供
def download(request):
file_name = #get the filename of desired excel file
path_to_file = #get the path of desired excel file …
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序的一个方法中使用Python的请求库.方法的主体如下所示:
def handle_remote_file(url, **kwargs):
response = requests.get(url, ...)
buff = StringIO.StringIO()
buff.write(response.content)
...
return True
Run Code Online (Sandbox Code Playgroud)
我想为该方法编写一些单元测试,但是,我想要做的是传递一个假的本地URL,例如:
class RemoteTest(TestCase):
def setUp(self):
self.url = 'file:///tmp/dummy.txt'
def test_handle_remote_file(self):
self.assertTrue(handle_remote_file(self.url))
Run Code Online (Sandbox Code Playgroud)
当我使用本地URL 调用requests.get时,我得到了下面的KeyError异常:
requests.get('file:///tmp/dummy.txt')
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/packages/urllib3/poolmanager.pyc in connection_from_host(self, host, port, scheme)
76
77 # Make a fresh ConnectionPool of the desired type
78 pool_cls = pool_classes_by_scheme[scheme]
79 pool = pool_cls(host, port, **self.connection_pool_kw)
80
KeyError: 'file'
Run Code Online (Sandbox Code Playgroud)
问题是如何将本地URL传递给requests.get?
PS:我编写了上面的例子.它可能包含许多错误.
这只是一个例子来说明我想要实现的目标.
我想检查一个可选项是否包含一个值,如果它是否大于0.我现在有这样的方式:
if let value = Double(textFieldText) {
if value > 0 {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在一条线上实现这一目标?就像是:
if let value = Double(textFieldText) && value > 0{
return true
}
Run Code Online (Sandbox Code Playgroud) 我有以下dict,键为元组:
d = {('first', 'row'): 3, ('second', 'row'): 1}
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含3列的数据框:Col1,Col2和Col3,它们应如下所示:
Col1 Col2 Col3
first row 3
second row 4
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何拆分元组,而不是按对解析dict对.
我目前在我的Mac OS X 10.6.8上安装了django-mongodb-engine 0.4.0版本,并且在导入"编译器"模块时奇怪地遇到了一个有趣的错误:
>> from django_mongodb_engine import compiler
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ImportError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_extensions/management/commands/shell_plus.pyc in <module>()
----> 1 from django_mongodb_engine import compiler
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_mongodb_engine/compiler.pyc in <module>()
15 from pymongo.errors import PyMongoError
16 from pymongo import ASCENDING, DESCENDING
---> 17 from pymongo.objectid import ObjectId, InvalidId
18
19 from djangotoolbox.db.basecompiler import NonrelQuery, NonrelCompiler, \
ImportError: No module named objectid
Run Code Online (Sandbox Code Playgroud)
我通过pip命令安装了包,并且已经安装了所有依赖项,如pymongo,djangotoolbox.我使用的pip命令是这样的:
>> sudo env ARCHFLAGS='-arch i386 -arch x86_64' pip …
Run Code Online (Sandbox Code Playgroud) 我做了一些研究,但我不太确定我在技术上寻找什么,所以我找不到太多信息.我正在使用Django REST.
模型
class Car(models.Model)
name = name = models.CharField(blank=True, null=True, db_index=True)
speed = models.IntegerField(default=SPEED.FAST)
Run Code Online (Sandbox Code Playgroud)
视图
class CarViewSet(viewsets.ModelViewSet):
queryset = Car.objects.all()
serializer_class = CarSerializer
Run Code Online (Sandbox Code Playgroud)
串行
class CarSerializer(serializers.ModelSerializer):
class Meta:
model = Car
Run Code Online (Sandbox Code Playgroud)
问题:我speed
的Car
模型中的字段是一个整数,当我访问REST端点API时,我不想返回整数,而是返回一个字符串.基本上:
if speed is 0:
return "slow"
else:
return "fast"
Run Code Online (Sandbox Code Playgroud)
所以JSON响应的示例如下:
{ name: "ferrari", speed: "fast" }
Run Code Online (Sandbox Code Playgroud)