小编lai*_*e9m的帖子

django - 如何在模板中插入上传文件的内容?

假设我在FileField中存储了一个文本文件.现在我想在网页上显示其内容.我阅读了django模板文档,但没有找到办法.

当然,我可以content = f.read()在我的视图中进行并传递content给模板.有没有更好的办法?谢谢!

better way意味着我可以通过传递MyModel.objects.all()给模板完成工作.我不能在模板中read的文件,但应该有一些黑客为此.

编辑
我试过:

def display_html(self):
    content = self.html_file.read()
    print(content)
    return content
Run Code Online (Sandbox Code Playgroud)

但没有显示......

最终编辑
下面的代码很有用

class MyModel(models.Model):
    name = models.CharField()
    text = models.FileField()

    def display_text_file(self):
        fp = open(self.text.path)
        return fp.read().replace('\n', '<br>')
Run Code Online (Sandbox Code Playgroud)

然而,我认为相同的东西不起作用:

class MyModel(models.Model):
    name = models.CharField()
    text = models.FileField()

    def display_text_file(self):
        return self.text.read().replace('\n', '<br>')
        # neither do self.text.read().decode().replace('\n', '<br>')
Run Code Online (Sandbox Code Playgroud)

我真的很想知道原因.

python django django-templates

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

计算javascript中两个日期时间之间的持续时间

我需要计算 JavaScript 中两个日期时间之间的持续时间。我试过这个代码:

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!

var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = mm+'/'+dd+'/'+yyyy;  //Current Date
console.log("current date"+today);


var valuestart ="8:00 AM";
var valuestop = "4:00 PM";//$("select[name='timestop']").val();

//create date format          
var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();

var hourDiff = timeEnd - timeStart;             
console.log("duration"+hourDiff);
Run Code Online (Sandbox Code Playgroud)

由此,我可以获得当前日期和持续时间。但是当我用变量“今天”替换日期“01/01/2007”时,我得到的结果为 NaN。请指导我在哪里我错了。提前致谢。

javascript datetime

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

在HTTP/2中,req/resp、frame和TCP数据包之间有什么关系?

在此输入图像描述

图片来自https://hpbn.co/http2/#streams-messages-and-frames

我想确保我真正理解发生了什么,所以这是我的理解:

  • 一个TCP数据包可能包含多个帧,并且它们可以属于不同的流。
  • 请求或响应由属于同一流的一个或多个帧组成。
  • 物理上不存在“流”,它只是一个逻辑概念(是的,我知道每个帧都包含一个流 ID)。

我对么?

tcp http http2

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

如何检查您正在使用的 REPL 类型?

Python REPL 有很多种,比如默认的 REPL、ptpython、ipython、bpython 等。当我已经使用 REPL 时,有没有办法检查当前的 REPL 是什么?

一点背景知识:
正如您可能已经听说的,我制作了pdir2来生成漂亮的dir()打印。我面临的一个挑战是使其与那些第三方 REPL 兼容,但首先我需要知道程序在哪个 REPL 中运行。

python ipython bpython read-eval-print-loop ptpython

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

"del sys.modules [module]"实际上做了什么?

众所周知,您可以del sys.modules[module]删除导入的模块.所以我在想:这与重写有sys.modules什么不同?一个有趣的事实是,重写sys.modules不能真正删除模块.

# a_module.py
print("a module imported")
Run Code Online (Sandbox Code Playgroud)

然后

import sys

def func1():
    import a_module
    # del sys.modules['a_module']
    sys.modules = {
        k: v for k, v in sys.modules.items() if 'a_module' not in k}
    print('a_module' not in sys.modules)  # True

def func2():
    import a_module

func1()  # a module imported
func2()  # no output here
Run Code Online (Sandbox Code Playgroud)

如果我使用del sys.modules['a_module'],调用func2()也打印a module imported,这意味着a_module成功删除.

我的问题是:del sys.modules[module]除了更改字典之外,实际上做了什么?

python module sys python-internals

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

如何在windows cmd中传递像*.txt这样的通配符参数

我的目录树:

test/
|_____ 1.txt   content: 1_line1\n1_line2
|_____ 2.txt   content: 2_line1\n2_line2
|_____ test_fileinput.py
Run Code Online (Sandbox Code Playgroud)

我的Python脚本:

import fileinput
import sys

for line in fileinput.input(sys.argv[1:]):
     print(fileinput.filename(), fileinput.filelineno(), line)
Run Code Online (Sandbox Code Playgroud)

首先我在Linux上尝试过,因为你看它完美无瑕:

$ python3 test_fileinput.py *.txt
1.txt 1 1_line1

1.txt 2 1_line2
2.txt 1 2_line1

2.txt 2 2_line2
Run Code Online (Sandbox Code Playgroud)

但在Windows上:

在此输入图像描述

当然我可以做python test_fileinput.py 1.txt 2.txt,但我想知道有没有办法让我仍然可以通过*.txtWindows?谢谢.

python windows

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

无法在Mac OS X 10.9.5上安装uWSGI

当我尝试在Mac OS X 10.9.5中安装uWSGI时,我收到以下错误:

Installing collected packages: uwsgi
  Running setup.py install for uwsgi
    plugins/python/pyutils.c:14:22: error: equality comparison with extraneous parentheses [-Werror,-Wparentheses-equality]
     if (((exc)->ob_type == &PyClass_Type)) {
          ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
    plugins/python/pyutils.c:14:22: note: remove extraneous parentheses around the comparison to silence this warning
     if (((exc)->ob_type == &PyClass_Type)) {
         ~               ^               ~
    plugins/python/pyutils.c:14:22: note: use '=' to turn this equality comparison into an assignment
     if (((exc)->ob_type == &PyClass_Type)) {
                         ^~
                         =
    1 error generated.
    Complete output from command /Users/jakob/.virtualenvs/uwsgi/bin/python -c "import setuptools, tokenize;__file__='/Users/jakob/.virtualenvs/uwsgi/build/uwsgi/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', …
Run Code Online (Sandbox Code Playgroud)

python macos uwsgi

4
推荐指数
2
解决办法
5097
查看次数

如何使用 sys.settrace 跟踪在全局范围内运行的代码?

假设我有一段这样的代码:

import sys

def printer(frame, event, arg):
    print(frame, event, arg)
    return printer

sys.settrace(printer)
x = 1
sys.settrace(None)
Run Code Online (Sandbox Code Playgroud)

自从

每当进入新的本地范围时,都会调用跟踪函数(事件设置为“call”)

上面的代码没有输出任何内容。请参阅我之前的问题

那么有没有一种方法可以在全局范围内跟踪线路,例如x = 1

python

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

点“.”的用法 在 Smalltalk 中

.Smalltalk 中的用法到底是什么?根据我的理解,它是不同语句的分隔符,但如果语句在最后可以省略。那是对的吗?

smalltalk pharo

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

如何在Python 2中将字符串转换为字节

我知道这听起来像是一个重复的问题,但这是因为我不知道如何正确地描述这个问题。

由于某种原因,我得到了一堆这样的unicode字符串:

a = u'\xcb\xea'
Run Code Online (Sandbox Code Playgroud)

如您所见,它实际上是汉字的字节表示形式,编码为 gbk

>>> print(b'\xcb\xea'.decode('gbk'))
?
Run Code Online (Sandbox Code Playgroud)

u'?'是我需要的,但是我不知道如何转换u'\xcb\xea'b'\xcb\xea'
有什么建议么?

python python-2.7 python-unicode

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