小编Gua*_*ard的帖子

将Django的FileField设置为现有文件

我在磁盘上有一个现有文件(例如/folder/file.txt)和Django中的FileField模型字段.

当我做

instance.field = File(file('/folder/file.txt'))
instance.save()
Run Code Online (Sandbox Code Playgroud)

它将文件重新保存为file_1.txt(下一次_2,等等).

我理解为什么,但我不想要这种行为 - 我知道我希望该字段与之关联的文件真的在那里等着我,我只想让Django指向它.

怎么样?

python django file

82
推荐指数
4
解决办法
3万
查看次数

Meteor JS:使用外部脚本

有一些服务(如FB like或AddThis)提供了一段代码.看起来像

<div class="service-name" data-something="x"></div>
<script type="text/javascript" src="http://service-domain.com/service-name.js"></script>
Run Code Online (Sandbox Code Playgroud)

好的,很酷,所以通常你把它粘贴到你的HTML上就行了.不是流星.

这是我看到的:

  • <script>模板/正文内部没有加载 - 我没有在参考资料中看到它,Meteor中的某些东西实际上是阻止浏览器将其识别为JS文件
  • 它起作用 <head>

现在这里是问题和疑问:

  1. 我不想加载它<head>- 因为速度
  2. 即使我从那里加载它 - 我们有QA和PROD环境.他们必须从不同的域加载此脚本(例如service-domain-qa.com与service-domain.com)

而且令人惊讶的是你不能在中使用模板助手/变量<head>.

对于传统的框架,它根本不是一个问题 - 您可以在任何地方包含脚本,只需加载它们; 您可以在服务器模板的任何部分使用逻辑/变量.

那么,我应该如何在Meteor中做到这一点?让我再说一遍:

  • 我需要将一些外部脚本(托管在第三方域上)加载到我的应用页面中
  • 将此脚本保存到项目的文件夹中不是一个选项
  • 脚本路径取决于环境(我们已经有设置系统),因此呈现它的模板的位置应该从代码中传递一些数据

我知道使用Template.created上的代码(使用LAB.js或其他)加载动态脚本来实现此目的的方法,但这太过分了......

javascript meteor

47
推荐指数
4
解决办法
3万
查看次数

使用Express JS .all()方法:检测实际使用的VERB

我将创建一个/api盲点代理请求和来回传递RESTful API系统的端点(用Ruby编写并托管在不同的域上).

这是一个中间过渡步骤,所以应该只是工作.

所以,我看到如何轻松实现这一目标app.all().但由于API是RESTful,我还必须维护用于请求的HTTP谓词 - 所以,我可以从req对象中检测到它吗?如果没有,当然我可以为GET,PUT,POST,DELETE,OPTIONS订阅5个处理程序,但要避免这种情况会好得多.

另外,我应该如何处理请求体(查询字符串和有效负载)?我假设我需要手动重新创建解析后的查询字符串req.query并按原样传递req.bodyrequest https://github.com/mikeal/request - 是不是?

javascript rest request node.js express

15
推荐指数
1
解决办法
7949
查看次数

FB身份验证的正确方法

我的项目使用Node.js和Express,但问题是关于通用方法.

我们的用户都来自FB,我们除了FB之外没有任何身份验证.我们需要将某些操作与特定的FB用户关联起来,并且还需要他们的令牌与FB通信.

目前我们这样做:

  • 用户来到该页面
  • 隐形块:一个带有占位符,用于用户的头像和名称('登录'),另一个带按钮触发FB登录('登出')
  • 使用FB JS SDK我们检查用户的登录状态.如果连接(实际上意味着:登录到FB,验证我们的应用程序并提供我们需要的所有权限),我们将获得用户名和FB ID并显示"已登录"块.否则显示"已注销"块
  • 对于某些操作的登录用户,用户的access_token通过AJAX传递给服务器(不用担心,此处为HTTPS),并由服务器代码用于发布到用户墙壁或其他任何操作
  • FB登录按钮由JS处理并调用FB.login()
  • 在JS authResponseChanged事件中采取明显的操作(显示/隐藏登录/退出块)

什么是好的:我们总是知道用户的状态是有效的(令牌的TTL超过了正常页面的生命周期,所以我们在这里很好).

我们不太喜欢:*客户端令牌是短暂的(是的,我们可以交换它们,但如果我们可以找到任何替代方案,我们不想)*它通常需要多次FB请求(1 - 加载JS SDK,2 - 获取登录状态),直到我们可以展示一些东西.直到我们网站的"登录"区块为空.

问题是什么?

我们正在寻找一种在这里使用某些服务器端代码的最佳方式,并且当我们确定用户已登录时,至少会呈现用户的名称和头像.

我可以想象一些像这样的方案:

  • 使用服务器端身份验证(带重定向)来获取长生命令牌并将其保留在服务器上
  • 在会话中保存用户的状态(登录/注销,FB ID,名称)
  • 如果会话具有登录状态,则在处理服务器上的模板时呈现名称和头像

关注点:

  • 如果用户从FB注册或撤销了App权限,我们应该如何知道它以及何时应该检查它(检查每N个请求?每X小时一次?只检查令牌是否会在Y小时内到期?)
  • 如果我们在渲染任何模板之前检查用户的状态(在官方示例中就是这种情况),这会减慢速度,对吧?因为我认为FB API调用在炎热时段可能会相当慢.

javascript facebook node.js

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

用Python听USB键盘

设置:简约Linux(华硕路由器上的OpenWRT),USB键盘(假设我知道设备名称如/ dev/hiddev0)

一个目标:编写一个python(或shell,在这种情况下,我可以使用它像python的代理)脚本,它将监听此设备并根据用户输入执行一些操作

作为开头 - 足以将用户输入的字符回显给给定名称的文本文件.

PyUSB看起来真的很混乱.我对PySerial没问题,虽然我不确定它是否适合任务 - 当试图打开设备时,它说"serial.serialutil.SerialException:无法配置端口:(22,'无效参数')"

UPD:嗯,好吧,琐碎的回答是"cat/dev/input/event1"

但输出真的很神秘 - 任何解释它的提示(作为字符int代码)?

UPD UPD:hexdump/dev/input/event1要好得多!它为每个按键提供6个9元组(我想,3个用于按键,3个用于按键)解密它可能不是那么困难

但更多的民间方式仍然受到高度赞赏

http://svn.navi.cx/misc/trunk/python/evdev/evdev.py看起来很有意思......

python embedded usb hid

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

验证node.js中的PKCS#7(PEM)签名/解包数据

我从第三方系统获得了PKCS#7加密包.该软件包未经过压缩,未加密,PEM编码,使用X.509证书签名.我还有来自提供商的PEM证书文件.

里面的数据是XML

我需要在Node.JS中执行以下操作:

  • 提取数据
  • 验证签名

一个示例包(没有敏感信息,数据是指我们的qa系统)http://pastebin.com/7ay7F99e

javascript pem node.js pkcs#7

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

Node.JS,Express和Heroku - 如何处理HTTP和HTTPS?

我有一个非常正常的应用程序应用程序 - 简单的服务器逻辑,视图,许多客户端JS.我必须做很多AJAX请求.其中一些需要通过HTTPS协议进行保护(有些不需要).

所以,我的服务器应该同时使用HTTP和HTTPS.它也适用于本地机器(通常使用nodemon运行)和Heroku.

据我所知,Heroku为您提供了一个可以监听的单一端口(process.env.PORT),并通过代理处理所有请求(因此,您的应用程序正在侦听此端口,而不是打扰原型 - 对吗? )

那么,我是否正确 - 我应该为dev机器和Heroku提供一些不同的代码?

喜欢

...
app = express()
...

if process.env.NODE_ENV == 'production'
  app.listen(process.env.PORT)
else
  https = require('https')
  http = require('http')
  http.createServer(app).listen(5080) # some local port
  options = {
    key: fs.readFileSync('key.pem'), 
    cert: fs.readFileSync('cert.pem') # my self-signed files
  }
  https.createServer(options, app).listen(5443) # some different local port
Run Code Online (Sandbox Code Playgroud)

这是处理这个问题的正确方法吗?

heroku node.js express

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

来自Node.js的"管道中未处理的流错误"

我的应用程序:Node.js,Express,一些中间件,包括connect-assets和express.static.

全部在开发模式下运行在本地机器(OSX,Node 0.8)上(因此表达式.static).

可能很重要的细节:我最近使整个应用程序通过HTTPS工作(必要时从HTTP重定向),而在开发时我使用自我证书(当然在我的浏览器中启用).

现在,该应用程序经常失败的堆栈跟踪:

(1)

stream.js:81
  throw er; // Unhandled stream error in pipe.
        ^
Error: write EPIPE
    at errnoException (net.js:769:11)
    at Object.afterWrite (net.js:593:19)
Run Code Online (Sandbox Code Playgroud)

(2)

stream.js:81
  throw er; // Unhandled stream error in pipe.
        ^
Error: socket hang up
    at SecurePair.error (tls.js:948:15)
    at EncryptedStream.CryptoStream._done (tls.js:432:17)
    at EncryptedStream.CryptoStream._pull (tls.js:577:12)
    at SecurePair.cycle (tls.js:866:20)
    at EncryptedStream.CryptoStream.end (tls.js:405:13)
    at Socket.onend (stream.js:66:10)
    at Socket.EventEmitter.emit (events.js:126:20)
    at TCP.onread (net.js:417:51)
Run Code Online (Sandbox Code Playgroud)

(3)

stream.js:81
  throw er; // Unhandled stream error in pipe.
        ^
Error: socket hang up …
Run Code Online (Sandbox Code Playgroud)

sockets node.js express

7
推荐指数
1
解决办法
6776
查看次数

将变量传递给Middleman 2中的模板

我有一个Middleman项目,我需要模拟一个登录用户.

足够简单 - 可以在config.rb中设置一些全局变量,如@ user = 1,为登录用户编码所有内容,然后将变量设置为0,并为已注销的用户编写所有内容,如果无处不在

我不是Ruby编码器所以我不明白在哪里挂钩.所以:我如何在中间人的config.rb中设置一个全局app变量?

ruby middleman

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

点击页面正文时,Android/iOS输入会聚焦

问题是关于标准浏览器显示HTML5页面,而不是WebView

测试设备是Galaxy Tab 10.1,虽然这也可以在iPad上看到.

该页面有一个表单.表格有固定的宽度和

margin-left: auto;
margin-right: auto;
Run Code Online (Sandbox Code Playgroud)

当我触摸并按住页面主体(表单外部)时,其中一个表单输入(通常是第一个,有时是第二个)被聚焦(并显示屏幕键盘).

任何解释为什么这种行为?知道怎么预防呢?

iphone android webkit mobile-safari ios

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