是否有一个已知的原因,为什么在null提供一个参数时,作为ES6中的参数传入时不使用默认参数?
function sayHello(name = "World") {
console.log("Hello, " + name + "!");
}
sayHello("Jim"); // Hello, Jim!
sayHello(undefined); // Hello, World!
sayHello(null); // Hello, null!
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置我的Django 文件上传按钮的样式,但由于它是通过表单处理而未在模板中的HTML中明确编写的,因此我不能直接使用HTML和CSS来设置样式,就像我可以用于输入类型的其他按钮一样.
我试图在我的内容中添加我的CSS类forms.py,但它将我的CSS样式按钮放在vanilla默认的Django文件上传按钮上.
我的代码如下:
class FileUploadForm(forms.Form):
docFile = forms.FileField(
label = "Select a CSV file",
)
class Meta:
model = FileUpload
fields = ('docFile')
def __init__(self, *args, **kwargs):
super(FileUploadForm, self).__init__(*args, **kwargs)
self.fields['docFile'].widget.attrs.update({'class': 'my_class'})
Run Code Online (Sandbox Code Playgroud)
我也尝试widget在我的Meta班级中定义一个如下:
class Meta:
model = FileUpload
widgets = {
'docFile': forms.FileInput(attrs={'class': 'my_class'}),
}
Run Code Online (Sandbox Code Playgroud)
但这与我的第一次尝试具有相同的效果.
是否有不同的方法来实现这一点,或者是否存在一些您可以在我的代码中发现的逻辑错误?
我正在尝试在Pandas DataFrame的matplotlib图上设置x轴的刻度(时间步长).我的目标是使用DataFrame的第一列作为刻度,但到目前为止我还没有成功.
我到目前为止的尝试包括:
尝试1:
#See 'xticks'
data_df[header_names[1]].plot(ax=ax, title="Roehrig Shock Data", style="-o", legend=True, xticks=data_df[header_names[0]])
Run Code Online (Sandbox Code Playgroud)
尝试2:
ax.xaxis.set_ticks(data_df[header_names[0]])
Run Code Online (Sandbox Code Playgroud)
header_names 只是列标题名称的列表,数据帧如下:
Compression Velocity Compression Force
1 0.000213 6.810879
2 0.025055 140.693200
3 0.050146 158.401500
4 0.075816 171.050200
5 0.101011 178.639500
6 0.126681 186.228800
7 0.150925 191.288300
8 0.176597 198.877500
9 0.202269 203.937000
10 0.227466 208.996500
11 0.252663 214.056000
Run Code Online (Sandbox Code Playgroud)
以下是CSV格式的数据:
Compression Velocity,Compression Force
0.0002126891606,6.810879
0.025055073079999997,140.6932
0.050145696,158.4015
0.07581600279999999,171.0502
0.1010109232,178.6395
0.12668120459999999,186.2288
0.1509253776,191.2883
0.1765969798,198.8775
0.2022691662,203.937
0.2274659662,208.9965
0.2526627408,214.056
Run Code Online (Sandbox Code Playgroud)
这是一个阅读和绘制图表的实现:
data_df = pd.read_csv(file).astype(float)
fig = Figure()
ax = fig.add_subplot(111)
ax.set_xlabel("Velocity …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,允许用户上传带有数据的CSV文件,然后将数据绘制成图形并显示给用户.这些文件在媒体文件夹中保存为媒体.但是在我的图表视图中,我需要打开文件并进行处理.我的问题是我只能打开项目当前工作目录中的文件,并且每当我尝试从该目录之外的某个位置上传文件时,我都会收到此错误:
File b'TEST.CSV' does not exist
Run Code Online (Sandbox Code Playgroud)
我试过这个,但没有成功:
file_upload_dir = os.path.join(settings.MEDIA_ROOT, 'Data_Files')
data_file = open(os.path.join(file_upload_dir, new_file), 'rb')
Run Code Online (Sandbox Code Playgroud)
该变量new_file只是从会话中保存的文件的名称,而不是该文件的路径.Data_Files是媒体目录中包含上载文件的目录.
我的Django媒体设置是
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_PATH = os.path.abspath(PROJECT_PATH)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
Run Code Online (Sandbox Code Playgroud)
有没有办法从视图中正确引用媒体文件?
这是file_upload_dir新文件的输出和位置.
>>> print(file_upload_dir)
C:\\Users\\vut46744\\Desktop\\graphite_project\\media\\Data_Files
>>> print(os.path.join(file_upload_dir, new_file))
C:\\Users\\vut46744\\Desktop\\graphite_project\\media\\Data_Files\\TEST.CSV
Run Code Online (Sandbox Code Playgroud) 我正在学习如何将 Django 框架用于一个工作项目,该框架将允许用户加载各种格式的文件(目前我只处理 CSV 文件),使用Pandas绘制该数据,并将该数据显示回用户通过 Django 模板。我在 iPython 中创建图形没有遇到任何问题,但一直在努力将其转换为 HTML Django 模板。
我遵循了以下示例matplotlib:
# graph input file
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
from matplotlib.dates import DateFormatter
def graph(request):
fig = Figure()
ax = fig.add_subplot(111)
x = []
y = []
now = datetime.datetime.now()
delta = datetime.timedelta(days=1)
for i in range(10):
x.append(now)
now += delta
y.append(random.randint(0, 1000))
ax.plot_date(x, y, '-')
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d'))
fig.autofmt_xdate()
canvas = FigureCanvas(fig)
response = HttpResponse( content_type = 'image/png')
canvas.print_png(response) …Run Code Online (Sandbox Code Playgroud) 因此,我有一个Django视图,该视图允许用户上传文件,并通过Pandas数据框绘制数据。然后在单独的视图中创建图形,并通过图像标签在原始文件上传视图中引用该图形。这很完美。
现在,我还想以表格格式在图形图像旁边显示数据。我正在使用Panda的内置功能在dataframe.to_html()单独的视图中创建表,该视图也将在文件上传视图中引用。
我的表生成正确,可以在为表指定的URL上看到。尝试从文件上传模板中引用该URL时遇到错误。
错误是:
Resource interpreted as Image but transferred with MIME type text/html
我发现这是由于我的文件上传模板包含以下内容:
<img src="{% url 'html_graph' %}" />
Run Code Online (Sandbox Code Playgroud)
由于视图返回的HttpResponse的content_type值为text/html。
有没有办法从我的文件上传模板中引用HTML表格视图,而该表格不使用image标签,因为该表格是HTML而不是图片?
这是我的工作实现:
html_table = df.to_html(index=False)
return render_to_response('myapp/my_template.html', {'html_table': html_table}, RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
然后,html_table我在模板中引用它,例如:
<div>
{{ html_graph | safe }}
</div>
Run Code Online (Sandbox Code Playgroud) 是否有库函数或正确的方法将两个 Pandas 数据框列堆叠在一起?
例如将 4 列变成 2 列:
a1 b1 a2 b2
1 2 3 4
5 6 7 8
Run Code Online (Sandbox Code Playgroud)
到
c d
1 2
5 6
3 4
7 8
Run Code Online (Sandbox Code Playgroud)
我阅读的大部分 Pandas Data Frames 文档只处理连接行和进行行操作,但我确信必须有一种方法来执行我所描述的操作,而且我确信它非常简单。
任何帮助都会很棒。
python ×6
django ×4
pandas ×4
html ×2
matplotlib ×2
css ×1
dataframe ×1
django-media ×1
ecmascript-6 ×1
file-io ×1
javascript ×1
numpy ×1