我正在尝试将服务器发送的一些数据保存到客户端 localStorage 中的 EJS 模板中。但是,当我尝试访问模板中的 localStorage 时,我得到 localStorage 未定义。
这是我的 page.ejs 的一部分:
<% localStorage.setItem('info', JSON.stringify({'user': user})) %>
Run Code Online (Sandbox Code Playgroud)
其中 user 是从服务器收到的值。
这可能吗?
是否可以同时从 CDN 和本地目录提供静态文件?目前 STATIC_URL 指向 CDN。我还配置了 STATICFILES_DIR 以提供本地目录中的文件。django.contrib.staticfiles 也在 INSTALLED_APPS 中。但是,如果我说:
"{% static "img/some_image.png" %}"
Run Code Online (Sandbox Code Playgroud)
在我的模板中,Django 尝试从 CDN 下载文件并且从不尝试在本地搜索它。有没有办法可以从两个位置提供服务?
Facebook 是否始终验证其用户的电子邮件地址?我正在使用 Django(使用 python-social-auth)构建一个应用程序,我希望人们能够使用他们的 Facebook 帐户登录。据我了解,电子邮件始终经过验证。即使注册者使用了他/她的电话号码。如果他们稍后输入电子邮件,该电子邮件仍将被验证。
但是,我不确定之前是否是这种情况。我们可以相信 Facebook 已经验证了所有帐户的所有电子邮件吗?
我通过执行以下操作获得了两个查询集:
q = Q(is_visible='true')
q |= Q(user='some_user')
q &= Q(text=request.GET.get('query', ''))
sqs1 = SearchQuerySet().filter(q)
sqs2 = SearchQuerySet().models(model.Some).filter(text=request.GET.get('query', ''))
Run Code Online (Sandbox Code Playgroud)
如果我只是将这两个查询集组合在一起,我不会得到我想要的。由于元素将为其特定查询评估分数。我想要的是在将这两个查询传递给 SearchQuerySet 之前以某种方式组合它们,以便搜索后端计算整个集合的分数。
我想以某种方式将第二个查询放入第一个查询的 Q 链中,但我无法弄清楚如何仅基于模型进行搜索。
我有一个带有一些必填字段的模态的表单,但是当我点击提交时,表单只是重新加载,我没有得到任何用于提交表单jQuery的验证消息,如下所示:
<script>
$('#InfroTextSubmit').click(function(){
$('#InfroText').submit();
});
</script>
Run Code Online (Sandbox Code Playgroud)
Twitter Bootstrap模式代码是:
<!-- Modal1 -->
<div id="myModal1" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Edit Introduction</h3>
</div>
<div class="modal-body">
<form id="InfroText" method="POST">
<input type="hidden" name="InfroText" value="1"/>
<table>
<tr><td>Title</td><td><input type="text" name="title" style="width:300px" required="require"/></td></tr>
<tr><td>Introudction</td><td><textarea name="contect" style="width:300px;height:200px"></textarea></td></tr>
</table>
</form>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary" id="InfroTextSubmit">Save changes</button>
</div>
</div>
<script>
$('#InfroTextSubmit').click(function(){
$('#InfroText').submit();
});
</script>
Run Code Online (Sandbox Code Playgroud)
那么如何验证表单并且如果表单有问题则不要让模型关闭并重新加载?
问候,
我正在尝试使用 Python 中的 sockjs 从网站上抓取 websocket 数据(帧),但我真的不知道该怎么做。
网址:ws://example.io/sockjs/wkzeza/websocket
在 Web 调试器中,我可以看到此响应标头:
Date: Sun, 27 Aug 2017 09:42:15 GMT
Connection: upgrade
Set-Cookie: oWG+Kel2MBo0v9FQK81NvuvBZcUwChaMvG2bsv1Ofs9Q8hHN+PlTn6PolO/8MgFXh2ygqC7A8WsJ7cgZwvpwvsbSp0VCpRHqmYMhGGxr; Expires=Sun, 03 Sep 2017 09:42:15 GMT; Path=/
Upgrade: websocket
Sec-WebSocket-Accept: HA0gkvrFCF7qjVYIDvSBa5sJKkg=
Sec-WebSocket-Extensions: permessage-deflate
Server: nginx
CF-RAY: 394e146d34a12f65-MAD
Run Code Online (Sandbox Code Playgroud)
通常只有响应头我可以从帧中检索数据,对吗?
我试过这段代码,但我可以阅读内容:
from websocket import create_connection
import json
headers = json.dumps({'Date': 'Sun, 27 Aug 2017 09:42:15 GMT',
'Connection': 'upgrade',
'Set-Cookie': 'oWG+Kel2MBo0v9FQK81NvuvBZcUwChaMvG2bsv1Ofs9Q8hHN+PlTn6PolO/8MgFXh2ygqC7A8WsJ7cgZwvpwvsbSp0VCpRHqmYMhGGxr; Expires=Sun, 03 Sep 2017 09:42:15 GMT; Path=/',
'Upgrade': 'websocket',
'Sec-WebSocket-Accept': 'HA0gkvrFCF7qjVYIDvSBa5sJKkg=',
'Sec-WebSocket-Extensions': 'permessage-deflate',
'Server': 'nginx',
'CF-RAY': '394e146d34a12f65-MAD'})
ws = create_connection('ws://example.io/sockjs/wkzeza/websocket', …Run Code Online (Sandbox Code Playgroud) 我正在使用 puppeteer 来测量页面及其功能的性能(这仍处于初始阶段,因为我才刚刚开始)。这是我正在使用的一个例子:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page._client.send('Performance.enable');
await page.goto('https://xxxx.com');
await page.focus("#formulario input#username");
await page.type("test2222@gmail.com", {delay: 200});
await page.focus("#formulario input#inputPassword3");
await page.type("pass", {delay: 200});
const loginForm = await page.$("#formulario");
await loginForm.evaluate(loginForm => loginForm.submit());
loginForm._client.send('Performance.getMetrics');
//BELOW DOESN'T WORK BECAUSE THE PAGE IS GONE
await page.click("span.show-filters");
await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)
提交表单后如何访问新加载的页面?我的意思是用户已经登录,我们如何获取新加载页面的句柄?
有没有办法使用 puppeteer 回复 Chrome 的通知?我试过禁用通知(我猜它会默认选择是?),但它没有帮助:
const browser = await puppeteer.launch({headless: false, slowMo: 250, args: ["--disable-notifications"]});
Run Code Online (Sandbox Code Playgroud) 我注意到整数的一个相当奇怪的行为,例如,它不适用于浮点数或小数:
In [205]: 10.__add__
File "<ipython-input-205-24ed61a2ee18>", line 1
10.__add__
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
浮点数或小数不会发生这种情况:
In [211]: Decimal(10).__add__
Out[211]: <bound method Decimal.__add__ of Decimal('10')>
In [204]: 10.3.__add__
Out[204]: <method-wrapper '__add__' of float object at 0x7fb48c60f840>
Run Code Online (Sandbox Code Playgroud) django ×3
javascript ×3
node.js ×3
puppeteer ×2
python ×2
python-2.7 ×2
ejs ×1
express ×1
facebook ×1
integer ×1
jquery ×1
oauth-2.0 ×1
web-scraping ×1
websocket ×1