我们说我有一个清单 ((3 4 5) (d e f) (h i j) (5 5 5 5))
如何以这样的方式获取每个列表的最后一个元素(5 fj 5)?
是否有内置的方法来获取Racket中的POST/GET参数?extract-binding和朋友们做我想做的事情,但是关于与文件上传有关的潜在安全风险的结论是可怕的
因此,我们建议不要使用它们,但它们是为了与旧代码兼容而提供的.
我能想到的最好的是(提前原谅我)
(bytes->string/utf-8 (binding:form-value (bindings-assq (string->bytes/utf-8 "[field_name_here]") (request-bindings/raw req))))
Run Code Online (Sandbox Code Playgroud)
但这似乎不必要地复杂化(似乎它会受到Bindings部分中记录的一些相同错误的影响).
在给定字段名称和请求的情况下,是否有一个或多或少的标准,无错误的方法来获取POST/GET变量的值?或者更好的是,将POST/GET值的集合作为列表/散列/列表返回的方法是什么?除了其中任何一个,是否有一个函数可以做同样的事情,但只有POST变量,忽略GET?
Hunchentoot/cl-who Page Composition
我正试图在hunchentoot中拼几页作为实验,我遇到了意想不到的墙.作为一个例子,我有以下模板宏.
(defmacro page-template ((&key title) &body body)
`(with-html-output-to-string
(*standard-output* nil :prologue t :indent t)
(:html :xmlns "http://www.w3.org/1999/xhtml" :xml\:lang "en" :lang "en"
(:head (:meta :http-equiv "Content-Type" :content "text/html;charset=utf-8")
(:title ,(format nil "~@[~A - ~]Test Site" title)))
(:body ,@body))))
现在,当我有一个纯文本页面,或一个填充html文字像
(define-easy-handler (test-page :uri "/") () (page-template (:title "Splash Page") (:p "Testing testing")))
一切都很好.页面输出正确,我可以立即看到我的代码的努力.但是,当我有一个由冗余元素组成的页面时,它并不那么简单.例如,假设我有一个页面,无论出于什么原因我想要显示三个RSS新闻源.这是一个足够复杂的组件,我想将它抽象出来,所以对我来说,我应该能够做类似的事情
(define-easy-handler (test-feed :uri "/feeds") ()
(page-template (:title "Splash Page")
(publish-newsfeed "http://nf-one.html")
(publish-newsfeed "http://nf-two.html")
(publish-newsfeed "http://nf-three.html")))
(defmacro publish-newsfeed (url &optional (item-limit 5))
(flet ((get-text (s-tree node-path) (car … 好吧,我正试图在Haskell中围绕IO,我想我会写一个处理网页的小应用程序来做它.我越来越绊倒在是片段(与道歉bobince,虽然是公平的,我不试图解析此HTML,只提取一个或两个值):
titleFromUrl url = do
(_, page) <- curlGetString url [CurlTimeout 60]
matchRegex (mkRegexWithOpts "<title>(.*?)</title>" False True) page
Run Code Online (Sandbox Code Playgroud)
上面应该采用字符串形式的URL,扫描它指向的页面matchRegex,然后返回Nothing或者Just [a],a匹配(可能是多行)字符串.令人沮丧的是,当我尝试做的时候
Prelude> (_, page) <- curlGetString url [CurlTimeout 60]
Prelude> matchRegex (mkRegexWithOpts "<title>(.*?)</title>" False True) page
Run Code Online (Sandbox Code Playgroud)
在翻译中,它正是我想要的.当我尝试加载相同的表达式,并imports从文件关联时,它给我一个类型推断错误,说明它couldn't match expected type 'IO b' against inferred type 'Maybe [String]'.这告诉我,我错过了一些小而基本的东西,但我无法弄清楚是什么.我已经尝试过显式地转换page为字符串,但这只是迷信编程(并且它在任何情况下都不起作用).
任何提示?
编辑:
我刚刚意识到我正在使用 auto-complete.el 0.2 版本。我想我需要使用 auto-complete.el 版本 0.1。我可以从哪里下载它?我只能在 Google 上找到较新的版本。
我正在尝试在 Emacs 中为 Python 设置自动完成功能。
我使用的是 Ubuntu LTS 版本,我安装了 Python 和 Emacs。
这是我的 .emacs 文件:
(setq-default indent-tabs-mode nil) ; always replace tabs with spaces
(setq-default tab-width 4) ; set tab width to 4 for all buffers
(add-to-list 'load-path "~/.emacs.d/vendor")
(progn (cd "~/.emacs.d/vendor")
(normal-top-level-add-subdirs-to-load-path))
(require 'python)
(require 'auto-complete)
(require 'yasnippet)
(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
;; Initialize Pymacs
(autoload 'pymacs-apply …Run Code Online (Sandbox Code Playgroud) 这样做更好吗
from pymongo import Connection
conn = Connection()
db = conn.db_name
def contrivedExample(firstName)
global db
return db.people.find_one({'first-name': firstName})
Run Code Online (Sandbox Code Playgroud)
或者
from pymongo import Connection
def contrivedExample(firstName):
with Connection() as conn:
return conn.db_name.people.find_one({'first-name': firstName})
Run Code Online (Sandbox Code Playgroud)
各种基本的 MongoDB 教程(无论是否面向 Python)都暗示应用程序应该在启动时连接一次;真的是这样吗?对于非平凡的、长时间运行的应用程序,答案是否会改变?答案是否特别针对 Web 应用程序而改变?单连接与每个请求连接的优缺点是什么?
假设“一旦启动”是正确的答案,在 中启动该连接是否合适__init__.py?
这是一个Haskell新问题,可能与IO()monad有关.
我在一个Happstack.Server为文件上传生成响应的程序中有一个函数.
postFile = do methodM POST
decodeBody filePolicy
(tmp, name, meta) <- lookFile "upload"
ok $ concat ["A file! ", tmp, " || ", name, " || ", show meta]
Run Code Online (Sandbox Code Playgroud)
这很好.现在,我希望它显示上传文件的内容以及本地临时名称,原始名称和内容类型元数据.我假设因为这一切都发生在一个do街区,我可以
postFile = do methodM POST
decodeBody filePolicy
(tmp, name, meta) <- lookFile "upload"
contents <- readFile tmp
ok $ concat ["A file! ", tmp, " || ", name, " || ", show meta, "\n\n", contents]
Run Code Online (Sandbox Code Playgroud)
但这给我带来了一连串的错误,这似乎告诉我一些事情随着decodeBody电话而来.
...
/home/inaimathi/projects/happstack-tutorial/parameters.hs:23:15:
No instance …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Tornado服务器在RasPi上运行一个小的python webapp,但每当我尝试启动它时,我都会收到错误
Traceback (most recent call last):
File "main.py", line 78, in <module>
application.listen(8080)
File "/usr/local/lib/python2.7/dist-packages/tornado-3.0.1-py2.7.egg/tornado/web.py", line 1343, in listen
server.listen(port, address)
File "/usr/local/lib/python2.7/dist-packages/tornado-3.0.1-py2.7.egg/tornado/tcpserver.py", line 113, in listen
sockets = bind_sockets(port, address=address)
File "/usr/local/lib/python2.7/dist-packages/tornado-3.0.1-py2.7.egg/tornado/netutil.py", line 69, in bind_sockets
sock = socket.socket(af, socktype, proto)
File "/usr/lib/python2.7/socket.py", line 187, in __init__
_sock = _realsocket(family, type, proto)
socket.error: [Errno 97] Address family not supported by protocol
Run Code Online (Sandbox Code Playgroud)
我有理由相信我做的一切都很合适
是否需要在ARM上进行不同的调用,或者这是龙卷风/ socket.py中的某个错误?有可用的解决方法吗?
由于它似乎是相关的,Pi正在从这个页面运行最新的Raspbian图像(几天前从第二个镜像下载,所以不再是最新版本了).我目前正在尝试使用旧版本,如果不起作用,我会尝试最新版本.
我正试图在Windows 7机器上安装SLIME,但是运行M-x slime会给我错误
Spawning child process: invalid argument
Run Code Online (Sandbox Code Playgroud)
我inferior-lisp-program设置为"C:\\Program Files\\ccl\\wx86cl.exe"(事实上是正确的,并且运行(comint-run inferior-lisp-program)给了我一个工作的CCL提示),并且slime目录已添加到我的'load-path.
我究竟做错了什么?
编辑:尝试通过Windows版本的lispbox加载相同的环境,它运行SLIME罚款.我宁愿不使用那个,因为它包装了比我想要的旧Emacs,CCL和SLIME.
format有零填充数字的指令.
cl-user> (format nil "~12,'0d" 27)
"000000000027"
Run Code Online (Sandbox Code Playgroud)
并且有一个类似的指令,用于在填充字符串时对齐字符串
cl-user> (format nil "~12@<~d~>" 27)
"27 "
Run Code Online (Sandbox Code Playgroud)
有办法做到这两点吗?那是:
cl-user> (format nil "~12,something,d" 27)
"270000000000"
Run Code Online (Sandbox Code Playgroud)
天真"~12,'0@<~d~>"似乎没有做我想要的.
cl-user> (format nil "~12,'0@<~d~>" 27)
"27 "
Run Code Online (Sandbox Code Playgroud) common-lisp ×3
python ×3
emacs ×2
haskell ×2
curl ×1
django ×1
element ×1
file-io ×1
happstack ×1
http-request ×1
hunchentoot ×1
lisp ×1
mongodb ×1
racket ×1
raspberry-pi ×1
slime ×1
tornado ×1
types ×1
ubuntu ×1
windows-7 ×1