小编fod*_*ma1的帖子

在xslxwriter中模拟自动调整列

我想在Python的xlsxwriter中模拟Excel自动调整功能.根据此网址,它不是直接支持的:http: //xlsxwriter.readthedocs.io/worksheet.html

但是,循环遍历工作表上的每个单元格并确定列的最大大小应该非常简单,只需使用worksheet.set_column(row,col,width)来设置宽度.

阻止我写这篇文章的复杂因素是:

  1. 该URL未指定set_column的第三个参数的单位.
  2. 我找不到一种方法来测量我想要插入单元格的项目的宽度.
  3. xlsxwriter似乎没有回读特定单元格的方法.这意味着我需要在写入单元格时跟踪每个单元格的宽度.如果我可以循环遍历所有单元格会更好,这样就可以编写通用例程.

python xlsxwriter

28
推荐指数
6
解决办法
3万
查看次数

django休息框架过滤器

我正在使用由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)

如何对此模型进行过滤?

python django django-filter django-rest-framework

23
推荐指数
2
解决办法
3万
查看次数

Django休息框架用于ViewSet方法的permission_classes

我正在用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方法.有没有办法只将它们用于某些端点?

python django rest django-rest-framework

12
推荐指数
4
解决办法
6602
查看次数

使用highcharts.js绘制与x轴平行的水平线

下面是帕累托图表的小提琴.我想画一条平行于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)

highcharts highstock

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

在生产中从CDN而不是Flask提供静态文件

在我的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)

但对我来说,这似乎有点哈哈.有没有更好的方法来解决这个问题?

python jinja2 flask

9
推荐指数
1
解决办法
3188
查看次数

javascript中的#ifndef

我正在寻找一种解决方案,只在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)

javascript preprocessor

8
推荐指数
3
解决办法
2万
查看次数

在Django Rest Framework中定义分页page_size per-view

从版本开始3.3,不再可能在视图上定义page_size,因为它已移至paginator类.相关的弃用

我们的API为不同的视图定义了不同的page_sizes,添加新的paginator子类只是为了覆盖page_size属性感觉不明确.我无法在视图定义中实例化paginator类,并在此处__init__实例化时使用该方法.我可以覆盖它并使它成为一个方法,返回一个用正确的参数实例化的实例,但由于它的名字不是,可能它不是一个好主意.get_pagination_class

我的问题是动态创建具有适当page_size属性集的paginator类的最简洁方法是什么?

我已经看到了这个问题,我想避免它的两个解决方案.

python django pagination django-rest-framework

8
推荐指数
1
解决办法
2227
查看次数

NgRx 选择器过滤空值

我们的 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值,只能处理更多的初始值。

这个看似常见的问题有什么好的解决方案吗?

rxjs ngrx angular

8
推荐指数
1
解决办法
4261
查看次数

标准差javascript

我试图获得用户输入字符串的标准偏差.我有如下,但它返回错误的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)

javascript standard-deviation

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

在pandas中访问存储在s3上的HDF文件

我在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 django hdf5 amazon-s3 pandas

6
推荐指数
1
解决办法
896
查看次数