我正在使用 web2py 编写类似应用程序的搜索引擎。是否可以为一个表单实现两个提交按钮,例如谷歌有两个按钮“搜索”和“我很幸运”。提前致谢。
在一个小测试文件中,我可以运行
#!/usr/bin/perl
use warnings;
use strict;
use open qw{:utf8 :std};
use XML::Simple;
my @cmdline = ("hg", "log", "-v", "--style", "xml");
open my $xml, "@cmdline |";
my $xmllog = XMLin($xml, ForceArray => ['logentry', 'parent', 'copy', 'path']);
foreach my $rev (@{$xmllog->{logentry}}) {
#do stuff
}
Run Code Online (Sandbox Code Playgroud)
它工作正常.当我在一个更大的程序中运行相同的代码(使用相同的XML输入)时,它终止于
*** glibc detected *** /usr/bin/perl: malloc(): memory corruption: 0x0a40e308 ***
Run Code Online (Sandbox Code Playgroud)
但是,如果我做交换
#open my $xml, "@cmdline |";
my $xml = `@cmdline`;
Run Code Online (Sandbox Code Playgroud)
然后它工作(在两个文件中),所以这更像是一个好奇的问题,而不是一个真正的问题.
Debian Sid:Perl 5.12.4-1.
(这是我第一次遇到Perl,所以不要过多地考虑我应该对语言的了解.我只是潜入现有代码.)
(较大的程序是ikiwiki,所以代码不是秘密,但我不知道在哪里寻找麻烦,并且由于实际原因我不能在这篇文章中包含所有代码.这涉及Mercurial后端.)
根据cjm的建议,我添加了print …
我需要创建一个表单并让表单上传图像并将其保存到我的磁盘.这是我的代码
import web
urls = (
'/hello', 'Index',
'/file_upload_form', 'ThatFile'
)
app = web.application(urls, globals())
render = web.template.render('templates/', base = "layout")
class ThatFile(object):
def GET(self):
return render.file_upload_form()
def POST(self):
form = web.input(image = "loc")
open(form.image,'r')
image_o = form.image.read()
return render.thatfile(o_image = o_image)
class Index(object):
def GET(self):
return render.hello_form()
def POST(self):
form = web.input(name = "Nobody", greet = None)
greeting = "%s, %s" % (form.greet, form.name)
return render.index(greeting = greeting)
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
我尝试过使用PIL Image模块,但它不显示图像.
我试图用contains运算符动态创建一个linq表达式.
在阅读了与此主题相关的几篇帖子后,我提出了以下代码,允许我执行"包含"评估:
internal static Expression<Func<TEntity, bool>> StringContains<TEntity>(string propertyName, string subString)
{
MethodInfo contains = typeof(JsonLinqParser_Paser).GetMethod("Like");
var param = Expression.Parameter(typeof(TEntity));
var body = Expression.Call(contains, Expression.Property(param, propertyName), Expression.Constant(subString, typeof(string)));
var lambda = Expression.Lambda<Func<TEntity, bool>>(body, param);
return lambda;
}
public static bool Like(string a, string b)
{
return a.Contains(b);
}
Run Code Online (Sandbox Code Playgroud)
这就是这样称呼的:
var expression = Expression.Lambda<Func<TEntity, bool>>(StringContains<TEntity>("FIPSCO_STR", _myStringValue), param);
Run Code Online (Sandbox Code Playgroud)
但是,在运行时,我收到如下错误:
类型'System.Func`2 [DAL.BestAvailableFIP,System.Boolean]'的表达式不能用于返回类型'System.Boolean'
其中"DAL.BestAvailableFIP"是"TEntity"类型.
我确信这与我对lambda表达式缺乏了解有关.谁能告诉我我做错了什么?
克隆和拉动,这些操作在功能上都相似,那么使用克隆而不是拉有意义吗?我的意思是,如果可以通过拉动现有的回购来实现相同的东西,为什么我应该使用克隆.
一个团队正在开发一些应用程序,后来又有一个新用户说user2分配给该应用程序,然后克隆现有的repo或拉动现有的repo用于新的条目(user2),哪个更好?比较黑白克隆/拉
我一直在使用bottlepy,我有这样的事情:
..code..
comments = [(u'34782439', 78438845, 6, u'hello im nick'),
(u'34754554', 7843545, 5, u'hello im john'),
(u'332432434', 785345545, 3, u'hello im phil')]
return comments
Run Code Online (Sandbox Code Playgroud)
在视图中我做了这个:
%for address date user text in comments:
<h3>{{address}}</h3>
<h3>{{date}}</h3>
<h3>{{user}}</h3>
<h3>{{text}}</h3>
%end
Run Code Online (Sandbox Code Playgroud)
当我启动服务器时,错误是:
Error 500: Internal Server Error
Sorry, the requested URL http://localhost:8080/hello caused an error:
Unsupported response type: <type 'tuple'>
Run Code Online (Sandbox Code Playgroud)
我怎么能把它渲染到视图中?
(对不起我的英文)
我正在使用BitBucket在线存储库.我打开了一个新的存储库并在我的计算机上同步了一些文件夹(带有tortoisehg),然后在该文件夹中打开了一个eclipse项目.
现在,当我想要提交时,/ bin文件夹也正在同步...显然我不希望发生这种情况,我想要的是同步/ src和/ test.
有人可以帮我这个.
谢谢.
假设我想编写一个相当简单的编程语言,我想实现像2 + 3*2 = 8这样的运算符
实现这样的事情的一般方法是什么?
我正在使用Bottle通过apache提供测试文件.
以下是我的apache配置:
WSGIDaemonProcess temp user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias /temp /opt/gridops/usage/temp/adapter.wsgi
<Directory /opt/gridops/usage/temp>
WSGIProcessGroup temp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
adapter.wsgi:
import os,sys
os.chdir(os.path.dirname(__file__))
sys.path = ['/opt/gridops/usage/temp'] + sys.path
os.chdir(os.path.dirname(__file__))
sys.stdout = sys.stderr
import bottle
print "++"*10
import index # This loads your application
application = bottle.default_app()
Run Code Online (Sandbox Code Playgroud)
index.py:
from bottle import mount, run
from routes import app
from bottle import default_app
default_app.push(app)
#run()
#run(app=app, host='192.168.1.3', port=8085)
Run Code Online (Sandbox Code Playgroud)
routes.py:
from bottle import Bottle , run,route,static_file,view,template,post,request
app …Run Code Online (Sandbox Code Playgroud) 我有这个目录结构:
.
??? controller
? ??? FooController.py
? ??? __init__.py
?
??? main.py
Run Code Online (Sandbox Code Playgroud)
FooController:
from bottle import get, post, request, response, run, abort, \
redirect, LocalResponse
import json
@get('/')
def create():
response.content_type = 'application/json'
return json.dumps({'hello2' : 'world'})
Run Code Online (Sandbox Code Playgroud)
我执行python main.py,其中包含:
from controller import *
from bottle import get, post, request, response, run, abort, \
redirect, LocalResponse
if __name__ == '__main__':
run(host = 'localhost', port = 8080)
Run Code Online (Sandbox Code Playgroud)
我希望通过导入所有控制器(在这种情况下FooController),它将挂钩到框架.但是当我去localhost时它不会:8080 /我收到404错误.如果我将所有路线都放入main.py,它就可以了.
有谁知道我怎么能完成我正在寻找的东西?
我是python的新手,我想知道是否有办法在python中识别某些东西的索引位置?
例如,如果我有一个由字母az组成的字符串,并且我要求用户输入一个字母,有没有办法让程序识别字母"f"在字母串中的索引为5?