Numpy,scipy,matplotlib和pylab是使用python进行科学计算的常用术语.
我只是学习了一下pylab,我感到很困惑.每当我想导入numpy时,我总能做到:
import numpy as np
Run Code Online (Sandbox Code Playgroud)
我只是考虑,一旦我做了
from pylab import *
Run Code Online (Sandbox Code Playgroud)
numpy也将被导入(带np别名).所以基本上第二个与第一个相比做了更多的事情.
我想问几件事:
有没有办法将Google地图与leaflet-cloudmade集成?我的意思是,我不想使用原始的cloudmade地图,但我想改用谷歌地图.我想要显示一张阿拉斯加地图(那里没有很多道路).如果我使用cloudmade地图,它将只是白色.
如果我想使用cloudmade map,这就是我要做的事情:
var cloudmade = new L.TileLayer('http://{s}.tile.cloudmade.com/YOUR-API-KEY/997/256/{z}/{x}/{y}.png', {
    attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
    maxZoom: 18
});
Run Code Online (Sandbox Code Playgroud)
我知道我应该更改'http:// {s} .tile.cloudmade.com/YOUR-API-KEY/997/256/{z}/{x}/{y} .png'部分.但是,如果我想使用谷歌地图(或任何其他地图),我应该写在那里?
这是传单 - cloudmade的文档(他们没有说太多关于使用第三方地图提供者.他们说他们对我们的应用程序中使用的地图提供者不可知,所以我认为应该可以使用谷歌地图) .
我读过Django - CSRF验证失败,以及与django和POST方法相关的几个问题(和答案).其中一个最好但不能正常工作的答案是/sf/answers/329534761/
所有批准的答案都表明至少有三件事:
我完全按照建议做了,但错误仍然出现.我使用django 1.3.1(来自ubuntu 12.04存储库)和python 2.7(默认来自ubuntu)
这是我的观点:
# Create your views here.
from django.template import RequestContext
from django.http import HttpResponse
from django.shortcuts import render_to_response
from models import BookModel
def index(request):
    return HttpResponse('Welcome to the library')
def search_form(request):
    return render_to_response('library/search_form.html')
def search(request):
    if request.method=='POST':
        if 'q' in request.POST:
            q=request.POST['q']
            bookModel = BookModel.objects.filter(title__icontains=q)
            result = {'books' : bookModel,}
            return render_to_response('library/search.html', result, context_instance=RequestContext(request))
        else:
            return search_form(request)
    else:
        return search_form(request)
Run Code Online (Sandbox Code Playgroud)
这是我的模板(search_form.html):
{% extends "base.html" %}
{% …Run Code Online (Sandbox Code Playgroud) 我在/ application/core中有一个控制器
/application/core/CMS_Controller.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require APPPATH."third_party/MX/Controller.php";
class CMS_Controller extends MX_Controller {
    public function __construct() {
        parent::__construct();
    }
    public function show_something() {
        echo "something shown";
    }
} 
Run Code Online (Sandbox Code Playgroud)
我在模块中有另一个控制器(/modules/my_module/controllers/controller.php),它从CMS_Controller扩展而来
/modules/my_module/controllers/controller.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Controller extends CMS_Controller {
    public function index() {
        $this->load->view('view');
    }
} 
Run Code Online (Sandbox Code Playgroud)
并且,在view.php(/modules/my_module/views/view.php)中我这样做: /modules/my_module/views/view.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 $ci =& get_instance();
 echo $ci->show_something();
?> 
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
致命错误:在第3行的/home/gofrendi/public_html/No-CMS/modules/my_module/views/view.php中调用未定义的方法CI :: …
我尝试创建rabbit-mq 发布者和订阅者。它按预期工作,直到我尝试重新启动我的rabbit-mq 服务器。
我使用rabbitmq:3-managementdocker image、ampqlib 5.3和 Node.js11.10.0来制作这个简单的程序:
const q = 'tasks';
const { execSync } = require("child_process");
const amqplib = require("amqplib");
function createChannel() {
    return amqplib.connect("amqp://root:toor@0.0.0.0:5672/")
        .then((conn) => conn.createChannel());
}
Promise.all([createChannel(), createChannel()])
    .then(async (channels) => {
        const [publisherChannel, consumerChannel] = channels;
        // publisher
        await publisherChannel.assertQueue(q).then(function(ok) {
            return publisherChannel.sendToQueue(q, Buffer.from("something to do"));
        });
        // consumer
        await consumerChannel.assertQueue(q).then(function(ok) {
            return consumerChannel.consume(q, function(msg) {
                if (msg !== null) {
                    console.log(msg.content.toString());
                    consumerChannel.ack(msg);
                }
            });
        });
    }) …Run Code Online (Sandbox Code Playgroud) 我使用pip在virtualenv中安装了matplotlib.一开始是失败的,但在我做完之后easy_install -U distribute,安装顺利进行.
这是我做的(在我的git仓库根文件夹中):
virtualenv env
source env/bin/activate
pip install gunicorn
pip install numpy
easy_install -U distribute
pip install matplotlib
Run Code Online (Sandbox Code Playgroud)
然后,我使用了make.txt pip freeze > requirements.txt.结果如下:
argparse==1.2.1
distribute==0.7.3
gunicorn==17.5
matplotlib==1.3.0
nose==1.3.0
numpy==1.7.1
pyparsing==2.0.1
python-dateutil==2.1
six==1.3.0
tornado==3.1
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)
我尝试部署应用程序时出现问题:
(env)gofrendi@kirinThor:~/kokoropy$ git push -u heroku
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 586 bytes, done.
Total 5 (delta 3), reused 0 (delta 0)
-----> Python app detected …Run Code Online (Sandbox Code Playgroud) https://www.pythonanywhere.com/try-ipython/等网站如何运作?
他们可能会做几个exec命令,或者与ipython接口.
然而,如果他们没有做任何"预防措施"(他们这样做),这可能是非常不安全的.仅仅(和邪恶的)用户可以做类似的事情
import shutil, os
Run Code Online (Sandbox Code Playgroud)
做坏事.
技术上怎么web based python interactive shell可能?如何确保交互式shell不会对提供商造成任何不良影响?
我的问题(可能在您的计算机中没有发生)
我有2个PHP脚本。
读取的第一个脚本包括第二个脚本以获取变量,更改值以及执行file_put_contents更改第二个脚本。
<?php
include('second.php'); // in second.php, $num defined as "1" 
$num ++;               // now $num should be "2"
// Change content of second.php
file_put_contents('second.php', '<?php $num='.$num.'; ?>'); 
include('second.php'); // Now here is the problem, $num's value is still "1"
echo $num;             // and I get an unexpected result "1"
?>
Run Code Online (Sandbox Code Playgroud)
第二个脚本仅包含一个变量
<?php $num=1; ?>
Run Code Online (Sandbox Code Playgroud)
我希望结果为“ 2”,但似乎第二个include不会读取file_put_contents所做的更改。
我的第一个猜测是file_put_contents函数中可能存在并发问题,因此当执行第二个include时,第二个文件并未真正更改。
我尝试通过将第一个脚本更改为此来测试我的猜测:
<?php
include('second.php');
$num ++;
file_put_contents('second.php', '<?php $num='.$num.'; ?>');
// show the contains of second.php
echo '<pre>' . str_replace(array('<','>'), array('<', '>'), …Run Code Online (Sandbox Code Playgroud) 在我的申请中,我可以确保没有这种"无意"的空白或其他什么.我不在控制器或模型上执行"echo",但是日志文件中始终存在"header already sent"错误(浏览器中没有显示).我也没有关闭php标签.唯一"可疑"的事情是我在模型和控制器上加载会话和输入库.
这实际上不是一个大问题,但如果我使用CLI请求,则错误会变得很糟糕.
浏览片刻后,我在堆栈溢出时找到了这个答案:https: //stackoverflow.com/a/13783368/755319 它说我可以在index.php的开头添加ob_start()用于输出缓冲
<?php
ob_start();
/*
 *---------------------------------------------------------------
 * APPLICATION ENVIRONMENT
 *--------------------------------------------------------------- 
Run Code Online (Sandbox Code Playgroud)
是保存做这样的事情吗?
编辑:好的,我可能错了,错过了一些东西.有没有任何程序化的方法来找出错误?(找到错误的php标签,空格或其他东西的程序)?
再次编辑:错误仅在CLI模式下生成.错误如下:
<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message:  Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>
</div><div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message:  Cannot modify header information - headers already sent by (output started at /home/gofrendi/public_html/No-CMS/system/core/Exceptions.php:185)</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 675</p>
Run Code Online (Sandbox Code Playgroud) 我开始使用 Python 中的 HTMLParser 从网站中提取数据。我得到了我想要的一切,除了 HTML 的两个标签内的文本。以下是 HTML 标记的示例:
<a href="http://wold.livingsources.org/vocabulary/1" title="Swahili" class="Vocabulary">Swahili</a>
Run Code Online (Sandbox Code Playgroud)
还有其他以 . 开头的标签。它们具有其他属性和值,因此我不想拥有它们的数据:
<a href="http://wold.livingsources.org/contributor#schadebergthilo" title="Thilo Schadeberg" class="Contributor">Thilo Schadeberg</a>
Run Code Online (Sandbox Code Playgroud)
标签是表格中的嵌入标签。我不知道这是否对其他标签有任何影响。我只想要一些名为“a”的标签中的信息,属性 class="Vocabulary",我想要标签内的数据,在示例中它是“斯瓦希里语”。所以我所做的是:
class AllLanguages(HTMLParser):
    '''
    classdocs
    '''
    #counter for the languages
    #countLanguages = 0
    def __init__(self):
        HTMLParser.__init__(self)
        self.inLink = False
        self.dataArray = []
        self.countLanguages = 0
        self.lasttag = None
        self.lastname = None
        self.lastvalue = None
        #self.text = ""
    def handle_starttag(self, tag, attr):
        #print "Encountered a start tag:", tag      
        if tag == 'a':
            for name, value in attr:
                if …Run Code Online (Sandbox Code Playgroud) 我知道那里有很多类似的问题.但我的问题不同. 我不想制作一个无法覆盖的方法. 我想保护我新创建的类不要意外覆盖某些东西.
使用下划线作为前缀是相当不错的,但很快我会得到许多带有很多下划线的方法.在我继承的类中的某个地方,我将覆盖祖先祖先的类方法.
我真正想要的是这样简单:
class Cat(Mammal):
    def walk(self):
        if ancestor_has_function('walk'):
            parent.walk();
        do_something_here();
Run Code Online (Sandbox Code Playgroud)
如果任何Cat的祖先(无论是哺乳动物,动物还是生命形式)都有"行走"方法,那么应首先执行父方法.
这有可能在python中这样做吗?
编辑: 例如,这是我认为好的答案的简历.希望这会有助于其他人:
class Animal(object):
    pass
    #def walk(self):
    #    print('animal walk')
class Mammal(Animal):
    def walk(self):
        if hasattr(super(Mammal, self), 'walk') and callable(super(Mammal,self).walk):
            super(Mammal, self).walk()
        print('mammal walk')
class Cat(Mammal):
    def walk(self):
        super(Cat, self).walk()
        print('cat walk')
if __name__ == '__main__':
    cat = Cat()
    cat.walk()
Run Code Online (Sandbox Code Playgroud)
这是输出:
哺乳动物走路
猫步
尝试取消注释Animal的walk方法,你也可以使用它.
python ×5
php ×3
codeigniter ×2
matplotlib ×2
python-2.7 ×2
class ×1
csrf ×1
django ×1
django-csrf ×1
gis ×1
google-maps ×1
heroku ×1
hmvc ×1
html ×1
html-parser ×1
html-parsing ×1
leaflet ×1
node-amqplib ×1
node.js ×1
numpy ×1
post ×1
rabbitmq ×1
scipy ×1
security ×1
shell ×1
web ×1