我想在Python的xlsxwriter中模拟Excel自动调整功能.根据此网址,它不是直接支持的:http: //xlsxwriter.readthedocs.io/worksheet.html
但是,循环遍历工作表上的每个单元格并确定列的最大大小应该非常简单,只需使用worksheet.set_column(row,col,width)来设置宽度.
阻止我写这篇文章的复杂因素是:
我正在使用由Django rest框架制作的API,我正在尝试对JSON进行过滤这是我的 serializers.py文件
from rest_framework import serializers
from .models import Establecimiento,Categoria,Ciudad,Zona
import django_filters
class EstablecimientoSerializer(serializers.ModelSerializer):
class Meta:
model = Establecimiento
depth = 1
fields = ('nombre',
'ciudad',
'categoria',
'direccion',
'telefono',
'precioMinimo',
'precioMaximo',)
Run Code Online (Sandbox Code Playgroud)
这是我的views.py档案
from rest_framework import viewsets
from .serializers import EstablecimientoSerializer, CategoriaSerializer
from models import *
from rest_framework import filters
from rest_framework import generics
class EstablecimientoViewSet(viewsets.ModelViewSet):
queryset = Establecimiento.objects.all()
serializer_class = EstablecimientoSerializer
filter_fields = ('categoria',)
Run Code Online (Sandbox Code Playgroud)
然后在EstablecimientoViewSet课堂上,我用一个filter_fields = ('categoria',)
用类别字段过滤url的API
如果我将过滤器添加到查询参数中,结果集不会更改,它会显示未过滤的所有数据.
...establecimiento?establecimiento=bar
Run Code Online (Sandbox Code Playgroud)
如何对此模型进行过滤?
我正在用Django REST框架编写一个rest API,我想用权限保护某些端点.权限类看起来像是提供了一种优雅的方法来实现这一目标.我的问题是我想为不同的重写ViewSet方法使用不同的权限类.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
def create(self, request, *args, **kwargs):
return super(UserViewSet, self).create(request, *args, **kwargs)
@decorators.permission_classes(permissions.IsAdminUser)
def list(self, request, *args, **kwargs):
return super(UserViewSet, self).list(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我也想允许未经身份验证的用户注册(用户创建),但我不想让列表用户只为工作人员使用.
在文档中,我看到了使用permission_classes装饰器保护API视图(而不是ViewSet方法)的示例,我看到为整个ViewSet设置了权限类.但它似乎不适用于重写的ViewSet方法.有没有办法只将它们用于某些端点?
下面是帕累托图表的小提琴.我想画一条平行于x轴的水平线,从左到右跨越,在y轴的80%标记处结束.我想在绘制帕累托图时始终这样做.
如果有办法动态地这样做,你能告诉我吗?
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'column',
borderWidth:1,
borderColor:'#ccc',
marginLeft:110,
marginRight:50,
//backgroundColor:'#eee',
//plotBackgroundColor:'#fff',
},
title:{
text:'Pareto Test 1'
},
legend:{
},
tooltip:{
formatter:function(){
if(this.series.name == 'Line'){
var pcnt = Highcharts.numberFormat((this.y / 415 * 100),0,'.');
return pcnt + '%';
}
return this.y;
}
},
plotOptions: {
series: {
shadow:false,
}
},
xAxis:{
categories:['A','B','C','D','E','F','G','H'],
lineColor:'#999',
lineWidth:1,
tickColor:'#666',
tickLength:3,
title:{
text:'X Axis Title',
style:{
color:'#000'
}
}
},
yAxis:[{
min:0,
//endOnTick:false,
//lineColor:'#999',
lineWidth:1,
//tickColor:'#666',
//tickWidth:1,
//tickLength:3,
//gridLineColor:'#ddd', …Run Code Online (Sandbox Code Playgroud)在我的Flask应用程序中,我通过dev env中的应用程序提供静态资产,但我想在生产中使用CDN.每个资产都被加载到一个名为的模板中base.hmtl,所以我想最简单的解决方案是将一个变量传递给render函数并在模板中使用它,如:
<script src="{{ STATIC_URL }}/js/main.js"></script>
Run Code Online (Sandbox Code Playgroud)
通常它将是dev env中的空字符串,以及生产中的cdn url.我想避免将此STATIC_URL变量传递给每个视图.我可以使它工作
@bp.context_processor
def set_static_path():
return dict(STATIC_URL='https://foo.bar.com')
Run Code Online (Sandbox Code Playgroud)
但对我来说,这似乎有点哈哈.有没有更好的方法来解决这个问题?
我正在寻找一种解决方案,只在Javascript中使用与编译语言中的#ifndef完全相同的函数定义一次函数.我发现了一些应该模仿这个功能的库,但它们没有用.
我正在使用MVC 3 Razor并定义了一些html助手,它们确实将用户控件放在页面上.
每个控件都有一组javascript函数,用于定义该控件的特定功能,因此这里存在一个问题:当在单个页面上多次调用帮助程序时,函数会多次定义.
我希望找到一种方法来保持在帮助程序中定义的少量javascript,而不必将这些小帮助程序中的每一个的所有javascript划分到一个单独的文件中.
样品:
@helper CmsImage(int id)
{
var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;
<text>
<input type="button" class="editor_function" style="display: none;" onclick="editImage(@id); return false;" />
<script>
function editImage(id) {
$('#alt_text' + id).attr('value', $('#' + id).attr('alt'));
$('#image_url' + id).attr('value', $('#' + id).attr('src'));
}
function saveImage(button, id) {
$(button).parent().parent().removeClass('color-yellow').addClass('color-red');
$(button).parent().siblings('div.widget-content').html('<img alt="' + $('#alt_text' + id).val() + '" src="' + $('#image_url' + id).val() + '" id="' + id + '" />');
}
#endif
</script>
Image Url:
<input type="text" id="image_url@{id.ToString();}" /><br />
Alt Text: …Run Code Online (Sandbox Code Playgroud) 从版本开始3.3,不再可能在视图上定义page_size,因为它已移至paginator类.相关的弃用
我们的API为不同的视图定义了不同的page_sizes,添加新的paginator子类只是为了覆盖page_size属性感觉不明确.我无法在视图定义中实例化paginator类,并在此处__init__实例化时使用该方法.我可以覆盖它并使它成为一个方法,返回一个用正确的参数实例化的实例,但由于它的名字不是,可能它不是一个好主意.get_pagination_class
我的问题是动态创建具有适当page_size属性集的paginator类的最简洁方法是什么?
我已经看到了这个问题,我想避免它的两个解决方案.
我们的 Web 应用程序加载 NgRx 存储中的值,这些值在初始状态下设置为 null。我正在寻找一种很好地过滤非空值的方法,因为我一直在组件中看到
this.myValue = this.store.pipe(
select(mySelector),
filter(notNull),
);
// where
const notNull = (data) => data !== null;
Run Code Online (Sandbox Code Playgroud)
我认为这个代码重复,在选择器级别处理这个会很棒。但我也愿意接受其他解决方案。
我尝试过的一件事是自定义createSelector:
import {createSelector, createSelectorFactory, defaultMemoize} from '@ngrx/store';
const isEqualOrNull = (a: any, b: any): boolean =>
a === b || b === null;
const createSelectorNotNull = createSelectorFactory((projectionFn) =>
defaultMemoize(projectionFn, isEqualOrNull));
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个解决方案不能处理初始null值,只能处理更多的初始值。
这个看似常见的问题有什么好的解决方案吗?
我试图获得用户输入字符串的标准偏差.我有如下,但它返回错误的SD值.计算应如下所示:总和值/数值=均方(每个值均值相加)求和/数值.
协助表示赞赏(如有可能,请予以解释)
function sum() {
var val = document.getElementById('userInput').value;
var temp = val.split(" ");
var total = 0;
var v;
var mean = total / temp.length;
var total1 = 0;
var v1;
var temp23;
var square;
for (var i = 0; i < temp.length; i++) {
v = parseFloat(temp[i]);
total += v;
}
mean = total / temp.length;
for (var i = 0; i < temp.length; i++) {
v1 = parseFloat(Math.pow(temp[i] - mean), 2);
total1 += v1;
}
temp23 = …Run Code Online (Sandbox Code Playgroud)我在S3上存储以HDF格式转储的pandas数据帧.我几乎卡住了,因为我无法传递文件指针,URL,s3 URL或StringIO对象read_hdf.如果我理解正确,文件必须存在于文件系统中.
资料来源:https://github.com/pydata/pandas/blob/master/pandas/io/pytables.py#L315
看起来它是针对CSV实现的,而不是针对HDF实现的.有没有更好的方法来打开这些HDF文件而不是将它们复制到文件系统?
为了记录,这些HDF文件正在Web服务器上处理,这就是我不想要本地副本的原因.
如果我需要坚持使用本地文件:有没有办法在文件系统上模拟该文件(使用真实路径),在读取完成后可以将其销毁?
我正在使用Python 2.7和Django 1.9以及pandas 0.18.1.
python ×6
django ×4
javascript ×2
amazon-s3 ×1
angular ×1
flask ×1
hdf5 ×1
highcharts ×1
highstock ×1
jinja2 ×1
ngrx ×1
pagination ×1
pandas ×1
preprocessor ×1
rest ×1
rxjs ×1
xlsxwriter ×1