小编imn*_*mns的帖子

访问Scrapy内部的django模型

是否可以在Scrapy管道中访问我的django模型,以便我可以将我的已删除数据直接保存到我的模型中?

我已经看过这个,但我真的不知道怎么设置它?

python django django-models scrapy

33
推荐指数
3
解决办法
9637
查看次数

如何使用tastypie登录django

我试图在我的自定义身份验证中覆盖is_authenticated.我有一些简单的(开始)像这样:

class MyAuthentication(BasicAuthentication):
    def __init__(self, *args, **kwargs):
        super(MyAuthentication, self).__init__(*args, **kwargs)

    def is_authenticated(self, request, **kwargs):
        return True
Run Code Online (Sandbox Code Playgroud)

然后在我的ModelResource中

class LoginUserResource(ModelResource):

    class Meta:
        resource_name = 'login'
        queryset = User.objects.all()
        excludes = ['id', 'email', 'password', 'is_staff', 'is_superuser']
        list_allowed_methods = ['post']

        authentication = MyAuthentication()
        authorization = DjangoAuthorization()
Run Code Online (Sandbox Code Playgroud)

我一直收到500错误"error_message": "column username is not unique".我在数据库中只有一个用户名,而我正在尝试进行身份验证.

关于它为什么会返回此错误的任何想法?我如何允许api客户端登录?

谢谢您的帮助.

python django tastypie

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

django和backbone.js的问题

我正在寻找使用我的django应用程序使backbone.js(以及jQuery)工作,但我有一些问题.我之前从未使用过一个安静的设置,所以我对使用REST的"正确"方式知之甚少.

  1. Backbone使用REST架构,但django默认不支持此功能.看起来像tastypie或活塞是实现REST api的方法.这是否意味着我必须将API用于我通过骨干进行的任何ajax调用?如果这是正确的,是否有任何性能问题或其他我需要注意的奇怪之处?

  2. 我的大多数django应用都需要身份验证.我的理解是REST api没有关于用户是否经过身份验证的任何概念,那么我该如何处理呢?我仍然可以使用登录所需的装饰与我的观点或我还做了别的吗?

  3. 那么Django的权限框架,我仍然可以设置/检查权限和组吗?

请随意单独回答每个问题,或者如果您看到我的整体混乱,请指出我正确的方向.

其中一些对你们很多人来说可能非常苛刻,但这让我很困惑,所以提前感谢你的帮助.

javascript python django backbone.js

23
推荐指数
1
解决办法
4972
查看次数

使用Python删除对象列表中的重复项

我有一个对象列表,我有一个充满记录的数据库表.我的对象列表有一个title属性,我想从列表中删除任何具有重复标题的对象(保留原始标题).

然后我想检查我的对象列表是否有数据库中任何记录的重复,如果是,请在将它们添加到数据库之前从列表中删除这些项目.

我已经看到了从这样的列表中删除重复项的解决方案:myList = list(set(myList)),但我不确定如何使用对象列表执行此操作?

我也需要维护对象列表的顺序.我也想也许我可以difflib用来检查标题的差异.

python mysql sqlobject

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

使用Lxml解析HTML

我需要帮助从lxml页面解析一些文本.我试过beautifulsoup和我正在解析的页面的HTML是如此破碎,它将无法正常工作.所以我已经转到了lxml,但文档有点令人困惑,我希望有人可以帮助我.

是我要解析的页面,我需要获取"附加信息"部分下的文本.请注意,我有很多的页面在这个网站这样来解析和每个网页的HTML并不总是完全一样(可能包含一些额外的空"TD"标签).关于如何获得该文本的任何建议将非常感谢.

谢谢您的帮助.

html python parsing lxml

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

Django上传文件不在MEDIA_ROOT路径中给我SuspiciousOperation错误

我想将文件上传到仍在我的django项目中的MEDIA_ROOT路径,但是在我的路径中.

当我尝试这样做时,我得到一个SuspiciousOperation错误.

以下是我的设置文件中定义的路径:

MEDIA_ROOT = os.path.join(os.path.dirname( __file__ ), 'static_serve')
UPLOAD_DIR = os.path.join(os.path.dirname( __file__ ), 'uploads')
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我不希望我上传的文件可以通过浏览器访问,我的MEDIA_ROOT路径是.

有没有人知道我如何解决(修复)此错误.

python django django-uploads

13
推荐指数
1
解决办法
6451
查看次数

使用Python和Scrapy进行递归爬行

我正在使用scrapy来抓取网站.该网站每页有15个列表,然后有一个下一个按钮.我遇到了一个问题,在我完成解析管道中的所有列表之前,我正在调用下一个链接的请求.这是我的蜘蛛的代码:

class MySpider(CrawlSpider):
    name = 'mysite.com'
    allowed_domains = ['mysite.com']
    start_url = 'http://www.mysite.com/'

    def start_requests(self):
        return [Request(self.start_url, callback=self.parse_listings)]

    def parse_listings(self, response):
        hxs = HtmlXPathSelector(response)
        listings = hxs.select('...')

        for listing in listings:
            il = MySiteLoader(selector=listing)
            il.add_xpath('Title', '...')
            il.add_xpath('Link', '...')

            item = il.load_item()
            listing_url = listing.select('...').extract()

            if listing_url:
                yield Request(urlparse.urljoin(response.url, listing_url[0]),
                              meta={'item': item},
                              callback=self.parse_listing_details)

        next_page_url = hxs.select('descendant::div[@id="pagination"]/'
                                   'div[@class="next-link"]/a/@href').extract()
        if next_page_url:
            yield Request(urlparse.urljoin(response.url, next_page_url[0]),
                          callback=self.parse_listings)


    def parse_listing_details(self, response):
        hxs = HtmlXPathSelector(response)
        item = response.request.meta['item']
        details = hxs.select('...')
        il = MySiteLoader(selector=details, item=item)

        il.add_xpath('Posted_on_Date', '...')
        il.add_xpath('Description', …
Run Code Online (Sandbox Code Playgroud)

python django scrapy

12
推荐指数
1
解决办法
6550
查看次数

递归遍历多维字典,维度未知

我想创建一个函数来递归遍历多维字典,其中维度是未知的.

这是我到目前为止所提出的,但它似乎没有正常工作.这将打印出一些键/值两次,它们不是有序的.

def walk_dict(d):
    for k,v in d.items():
        if isinstance(v, dict):
            walk_dict(v)
        else:
            print "%s %s" % (k, v) 
Run Code Online (Sandbox Code Playgroud)

这是一个示例数组:

d = {
        'plan_code': 'b',
        'quantity': '1',
        'account': {
            'account_code': 'b',
            'username': 'jdoe',
            'email': 'jdoe@domain.com',
            'first_name': 'b',
            'last_name': 'b',
            'company_name': 'Company, LLC.',
            'billing_info': {
                'first_name': 'b',
                'last_name': 'b',
                'address1': '123 Test St',
                'city': 'San Francisco',
                'state': 'CA',
                'country': 'US',
                'zip': '94105',
                'credit_card': {
                    'number': '1',
                    'year': '2018',
                    'month': '12',
                    'verification_value': '123',
                },
            },
        },
    }
Run Code Online (Sandbox Code Playgroud)

python

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

使用node.js和自然语言处理来处理多个单词短语

我正在为node.js 使用非常酷的自然库.

我正在尝试训练我的分类器来匹配这个短语user experience.我的问题是,如果我做这样的事情:

classifier.addDocument(['user experience'], 'ux');
Run Code Online (Sandbox Code Playgroud)

它不匹配2个单词短语,我相信因为它标记了单词.如果我做这样的事情:

classifier.addDocument(['user', 'experience'], 'ux');
Run Code Online (Sandbox Code Playgroud)

它的工作方式就像我想要的那样,但我的问题是,我不想只是匹配这个词,user因为一篇文章可以提到包括user多次这个词,它可能与用户体验无关,这将导致不准确的分类.那么,我的问题是如何使用NLP匹配2个或更多单词短语?

谢谢你的帮助提前.

javascript nlp node.js

11
推荐指数
1
解决办法
4108
查看次数

Node Busboy中止上传

我正在使用busboy,将我上传的文件写入缓冲区并对其执行一些验证(宽度,高度和文件大小).一旦发现上传有问题,我不能为我的生活弄清楚如何中止/停止流.

例如,如果我想要允许的最大文件大小为500kb,我会在上传时跟踪缓冲区的大小,如果大小超过500kb,我想中止.

这是我的代码的简化版本.

var self = this;
var busboy = new Busboy({
    headers: self.req.headers,
    limits: {
        files: 1
    }
});
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {

    file.fileRead = [];
    var size = 0;
    file.on('data', function(chunk) {

        size += chunk.length;

        /* DO VALIDATION HERE */
        if( size > 500000) {
            /*** ABORT HERE ***/
        }


        file.fileRead.push(chunk);
    });

    file.on('end', function() {
        var data = Buffer.concat(file.fileRead, size);
        // ... upload to S3
    });

    self.req.pipe(busboy);
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js express busboy

11
推荐指数
2
解决办法
3312
查看次数