我成功地能够使用Django(1.6.4)和allauth(0.16.1)以及Python(2.7)通过Google和Facebook登录,预期重定向到settings.LOGIN_REDIRECT_URL,以防没有现有用户从中检索到emailid供应商.但是,当已经存在与从提供者(fb或goolge)检索到的用户具有相同emailid的用户时,它总是重定向到/ accounts/social/signup /#= 注册页面询问:
您即将使用您的Facebook/Google帐户登录example.com.最后一步,请填写以下表格:电子邮件已自动填写.
我曾与测试SOCIALACCOUNT_AUTO_SIGNUP = True或False,但没有效果.我尝试更改facebook的auth_type,但除了"rerequest"之外我没有看到任何其他选项
我有以下settings.py:
ACCOUNT_AUTHENTICATION_METHOD = "email" # Defaults to username_email
ACCOUNT_USERNAME_REQUIRED = False # Defaults to True
ACCOUNT_EMAIL_REQUIRED = True # Defaults to False
SOCIALACCOUNT_QUERY_EMAIL = ACCOUNT_EMAIL_REQUIRED
SOCIALACCOUNT_AUTO_SIGNUP = True
SOCIALACCOUNT_EMAIL_REQUIRED = False
ACCOUNT_ADAPTER = "myproject.adapter.MyLoginAccountAdapter"
LOGIN_URL = "/"
LOGIN_REDIRECT_URL = "/users/{id}/mytags"
Run Code Online (Sandbox Code Playgroud)
如何停止此重定向到注册,并将提供程序登录重定向到具有相同emailid的已存在用户的特定LOGIN_REDIRECT_URL?
注意:这个我试过了
更新:
@receiver(pre_social_login)和raise ImmediateHttpResponse(看看我的答案)解决了有用的链接:这个和这个 …我安装了Cygwin的Win 7.cygwin有自己的Python 2.7解释器.我已经为Win 7单独安装了Miniconda(不适用于Cygwin,不确定我是否必须).
所以,问题是我能够从cygwin创建一个新的env,并能够激活它.但是,激活似乎没有做任何事情?
ambarik@AMBARIK-WS01 ~
$ conda create -n cce python
Fetching package metadata: ..
Solving package specifications: .
Package plan for installation in environment C:\Miniconda\envs\cce:
The following packages will be linked:
package | build
---------------------------|-----------------
python-2.7.8 | 0 hard-link
Proceed ([y]/n)? y
Linking packages ...
[ COMPLETE ] |#################################################| 100%
#
# To activate this environment, use:
# > activate cce
#
ambarik@AMBARIK-WS01 ~
$ activate cce
-bash: activate: command not found
ambarik@AMBARIK-WS01 ~
$ /cygdrive/c/Miniconda/Scripts/activate.bat cce …Run Code Online (Sandbox Code Playgroud) 任何人都可以帮我这个.Error: passport.initialize() middleware not in use当我尝试连接到数据库中的用户时,我不断得到.异常案例工作得很好(没有找到错误的密码/用户名).
这是设置:
我正在使用的版本
// version
node --version v0.10.33
express@4.10.2
passport@0.2.1
passport-local@1.0.0
Run Code Online (Sandbox Code Playgroud)
server.js代码在这里
// server.js
'use strict';
var express = require('express');
var bodyParser = require('body-parser');
var session = require('express-session');
var passport = require('passport');
var flash = require('connect-flash');
var cookieParser = require('cookie-parser');
//Our custom modules
var mysqlc = require('./modules/mysql_client');
// Our custom apps
var app = express();
//view engine setup
app.set('env', process.env.NODE_ENV);
console.log('Running as environment: ' + app.get('env'));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(favicon(path.join(__dirname,'./public/favicon.ico'))); …Run Code Online (Sandbox Code Playgroud) 为什么当grep -c返回时0,脚本失败并显示“-1”退出代码。这仅在set -o errexit设置时发生。
cat <<'EOT' > /tmp/foo.sh
#!/usr/bin/env bash
function bash_traceback() {
local lasterr="$?"
set +o xtrace
local code="-1"
local bash_command=${BASH_COMMAND}
echo "Error in ${BASH_SOURCE[1]}:${BASH_LINENO[0]} ('$bash_command' exited with status $lasterr)"
if [ ${#FUNCNAME[@]} -gt 2 ]; then
# Print out the stack trace described by $function_stack
echo "Traceback of ${BASH_SOURCE[1]} (most recent call last):"
for ((i=0; i < ${#FUNCNAME[@]} - 1; i++)); do
local funcname="${FUNCNAME[$i]}"
[ "$i" -eq "0" …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个shell脚本,允许我在图像中搜索文本.根据文本,脚本将尽力从图像中获取文本.我想要你的输入,因为这个脚本似乎适用于大多数图像,但不是那些文本字体颜色类似于文本周围较小环境的图像.
# !/bin/bash
#
# imt-ocr.sh is image magick tessearc OCR tool that is used for finding out text in image
#
# Arguments:
# 1 -- image filename (with path)
# 2 -- text to search in image (default to '')
# 3 -- occurence of text (default to 1)
# Usage:
# imt-ocr.sh [image_filename] [text_to_search] [occurence]
#
image=$1
txt=$2
occurence=$3 # Default to 1
if [ "$occurence" == "" ]
then
occurence=1
fi
get_major_color ()
# Returns the …Run Code Online (Sandbox Code Playgroud) 我试图telnet到Cisco路由器并使用pexpect发出命令.它工作,但sendline()在输出中重复.甚至在使用setecho后使用False.代码是:
'''
Created on Nov 19, 2012
@author: Amit Barik
'''
import pexpect
hostname = 'hostname'
login_cmd = 'telnet ' + hostname + '.net'
username = 'username'
password = 'pwd'
prompt = hostname + '#'
p = pexpect.spawn(login_cmd)
p.setecho(False)
p.logfile = open('Log.log', 'w+')
p.expect('Username:')
print '1',repr(p.before)
p.sendline(username)
p.expect('Password:')
print '2',repr(p.before)
p.sendline(password)
p.expect(prompt)
print '3',repr(p.before)
cmd = 'show clock'
p.sendline(cmd)
p.expect(prompt)
print 'Output for {0}'.format(cmd), repr(p.before)
Run Code Online (Sandbox Code Playgroud)
输出是:
# On Python Console
Output for show clock 'show clock\r\n00:16:40.692 UTC Tue Nov 20 …Run Code Online (Sandbox Code Playgroud) 我的简单需求。如何查找当前在网页上不可见的元素?我在猜测style="visibility:hidden"或者style="display:none"是隐藏元素的简单方法,但 BeautifulSoup 不知道它是否隐藏。
例如,HTML 是:
Textbox_Invisible1: <input id="tbi1" type="text" style="visibility:hidden">
Textbox_Invisible2: <input id="tbi2" type="text" class="hidden_elements">
Textbox1: <input id="tb1" type="text">
Run Code Online (Sandbox Code Playgroud)
所以我首先担心的是 BeautifulSoup 无法确定上述任何文本框是否被隐藏:
# Python 2.7
# Import BeautifulSoup
>>> source = """Textbox_Invisible1: <input id="tbi1" type="text" style="visibility:hidden">
... Textbox_Invisible2: <input id="tbi2" type="text" class="hidden_elements">
... Textbox1: <input id="tb1" type="text">"""
>>> soup1 = BeautifulSoup(source)
>>> soup1.find(id='tb1').hidden
False
>>> soup1.find(id='tbi1').hidden
False
>>> soup1.find(id='tbi2').hidden
False
>>>
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是,有没有办法找出隐藏的元素?(我们还必须考虑复杂的 HTML,其中可能隐藏了具有元素的元素)
我正在尝试使用bootstrap3和Python 2.7上的最新django实现基本登录(和注册)模式.我正在使用Django-allauth库通过facebook和gmail实现登录.
默认使用django-allauth(ei默认为allauth.account.urls,allauth.account.view,allauth.account.forms文件),用户必须导航到URL http://sitename.com/accounts/login和http ://sitename.com/accounts/signup分别登录和注册.
有人可以给我一种方法来覆盖这种默认行为,这样,用户可以通过点击主页上的登录或注册模式登录或注册(而不是导航到/ accounts/...)?
我正在尝试对django-allauth库进行逆向工程,以了解在单击注册/登录页面后调用的内容以及如何覆盖它(或者我需要覆盖的所有内容)?
谢谢,
阿米特
我看到我的EPILOG中没有保留换行符吗?我想知道为什么只在一行包含74字符时才看到换行符吗?
# http://click.pocoo.org/5/commands/
import click, sys
def main_caller(*args, **kwargs):
print('act on arguments', args, kwargs)
EPILOG = '''
# oneline
# twoline
\n
# oneline with 74char x
# twoline with 74char x
'''
@click.group(help='wwwwwwwwww', epilog=EPILOG, invoke_without_command=True, chain=True)
@click.argument('start_or_stop')
@click.option('-v', '--verbose', default=False, help='Print Verbose messages')
@click.option('-l', '--logfile', help='Path to logfile to store log messages')
@click.option('-a', '--action', multiple=True, type=click.Choice(['act1', 'act2', 'act3']), default=['act1', 'act2'])
def cli(*args, **kwargs):
'''foo bar'''
pass
@cli.command()
@click.option('--debug/--no-debug', default=False)
def cmd1(*args, **kwargs):
print('cmd1', args, kwargs)
return 'cmd11111' …Run Code Online (Sandbox Code Playgroud) 我有一个简单的案例,当我使用 Java8 中的 Jackson (2.8) 和 Lombok(最新版本)将 JSON 字符串转换为 POJO 时,我想对 JSON 字符串中的值强制执行空检查。但是看起来@NonNull使用创建 pojo 时不会抛出异常ObjectMapper.convertValue,但是当使用构建器模式正常创建 pojo 时它工作正常”?
这是我的情况:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Lombok;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.extern.log4j.Log4j2;
@Log4j2
public class LearnJackson {
public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public static void main(final String[] args) throws IOException {
learnToConvertJsonToSimplePojo();
}
public static void learnToConvertJsonToSimplePojo() throws IOException {
String jsonString = "{}";
JsonNode node = OBJECT_MAPPER.readValue(jsonString, JsonNode.class); …Run Code Online (Sandbox Code Playgroud)