小编Slo*_*rry的帖子

使用flask_login会话和jinja2模板

我有简单的jinja2模板和注册/登录链接,我应该在用户登录时隐藏它们,我也使用flask_login模块来处理这个问题.

问题是:如何识别用户是否登录jinja2模板?

python jinja2 flask python-2.7 flask-login

21
推荐指数
1
解决办法
1万
查看次数

在wtforms中调用validate时输入错误

我在行中有TypeError,我在表单上调用'validate()'.

错误是:

   Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/valery/projects/easy_booking/easy_booking/controllers/users.py", …
Run Code Online (Sandbox Code Playgroud)

python flask python-2.7 wtforms flask-wtforms

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

用假会话测试控制器

我想为我的控制器编写测试:

Result changeAction = callAction(controllers.routes.ref.Users.changePassword());
assertThat(status(changeAction)).isEqualTo(OK);
Run Code Online (Sandbox Code Playgroud)

我有一个http状态代码 - 300.

这是正确的,因为我有一个名为Secured的类

package controllers;

import play.mvc.*;
import play.mvc.Http.*;

public class Secured extends Security.Authenticator {

    @Override
    public String getUsername(Context ctx) {
        return ctx.session().get("userId");
    }

    @Override
    public Result onUnauthorized(Context ctx) {
        return redirect(routes.Users.login(ctx.request().uri()));
    }


}
Run Code Online (Sandbox Code Playgroud)

当我使用@Security.Authenticated(Secured.class)控制器方法的注释时,如果不存在与"userId"的会话,则重定向.

所以问题是,我怎么能伪造会话?

我试着明白了 Controller.session("usderId", "2");

并得到一个例外:

java.lang.RuntimeException: There is no HTTP Context available from here.

    at play.mvc.Http$Context.current(Http.java:30)
    at play.mvc.Controller.session(Controller.java:54)
    at play.mvc.Controller.session(Controller.java:61)
    at controllers.UsersTest.testUnloginedChangePassword(UsersTest.java:35)
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何伪造控制器的会话?

还有一个问题:如何在不使用弃用的API的情况下测试路由,比如Result result = routeAndCall(fakeRequest(GET, "/change_password"));

java testing playframework-2.1

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

推送通知的证书和私钥

我需要cert.pem和key.pem for API(在我的节点js后端)但我只是从App ID - > Edit - > Download下载.cert文件.我怎样才能得到它,我可以从.cer文件中提取它?

certificate push-notification ios

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

char和字符串参数之间的分割函数差异

我在scala REPL中尝试以下代码:

"ASD-ASD.KZ".split('.')
res7: Array[String] = Array(ASD-ASD, KZ)

"ASD-ASD.KZ".split(".")
res8: Array[String] = Array()
Run Code Online (Sandbox Code Playgroud)

为什么这个函数调用有不同的结果?

split scala

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

使用JUnit进行简单的JDBC连接测试

我想简单测试JDBC连接,我不使用框架,只使用JDBC和JUnit.我可以用JUnit执行此测试吗?我不知道如何测试加载驱动程序,请给我一些连接测试的例子.

连接客户端:

package newpackage.db;

import java.sql.Connection;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SqlConnection {
    private Connection con;
    private String name;
    private String url;
    private String password;
    private String driver;

    public SqlConnection() {
        this.name = "root";
        this.password = "12345";
        this.url = "";
        this.driver = "com.mysql.jdbc.Driver";
    }

    public Connection getConnection() {
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(SqlConnection.class.getName()).log(Level.SEVERE, null, ex);
        }

        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

测试用例:

public void testDriverManager() {
    SqlConnection conClient = new SqlConnection();
    assertEquals(conClient.getConnection(),...);
    or
    assertTrue(conClient.getConnection(),...);
}
Run Code Online (Sandbox Code Playgroud)

java testing junit jdbc

5
推荐指数
1
解决办法
2万
查看次数

阻塞节点js路由

我正在编写 Node js 应用程序,我想阻止我的应用程序上的一些 url(对所有用户关闭)。可以这样做吗?注意:我想关闭/打开注册和身份验证。 更新: 我使用express js框架

node.js express

4
推荐指数
1
解决办法
2745
查看次数

Passport反序列化每个请求两次调用

当我在我的节点js + passport app中打开任何url时,我有2个数据库请求(可能是deserialze方法调用).

我的日志:

NEW QUERY____________________
SELECT * FROM users WHERE id=$1
[ '1' ]
GET / 200 248ms - 829b
NEW QUERY____________________
SELECT * FROM users WHERE id=$1
[ '1' ]
GET /stylesheets/style.css 404 3ms
Run Code Online (Sandbox Code Playgroud)

反序列化方法和中间件:

app.configure(function() {
    // all environments
    app.set('port', process.env.PORT || 3000);
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');
    app.use(express.static(path.join(__dirname, 'public')));
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.cookieParser());
    app.use(express.json());
    app.use(express.urlencoded());
    app.use(express.methodOverride());
    app.use(express.session({
        secret: "thisismysecretkey",
        store: new RedisStore({ host: 'localhost', port: 6379, client: redisClient })
    }));
    app.use(passport.initialize());
    app.use(passport.session());
    app.use(app.router);
});



passport.serializeUser(function(user, …
Run Code Online (Sandbox Code Playgroud)

node.js express passport.js

2
推荐指数
1
解决办法
2114
查看次数

模式匹配如何与列表一起使用

我刚开始学习haskell和模式匹配.我只是不明白它是如何实现的,是因为多态性而对这种模式的不同类型和函数实现进行评估[](x:_)评估,或者我只是错了并且使用了另一种技术.

head' :: [a] -> a  
head' [] = error "Can't call head on an empty list, dummy!"  
head' (x:_) = x 
Run Code Online (Sandbox Code Playgroud)

或者让我们考虑这种模式匹配功能:

tell :: (Show a) => [a] -> String  
tell [] = "The list is empty"  
tell (x:[]) = "The list has one element: " ++ show x  
tell (x:y:[]) = "The list has two elements: " ++ show x ++ " and " ++ show y  
tell (x:y:_) = "This list is long. …
Run Code Online (Sandbox Code Playgroud)

haskell list pattern-matching

2
推荐指数
1
解决办法
283
查看次数

JFrame关闭问题

我有Main类,StartFrame扩展了JFrame,UserPanel扩展了我添加到StartFrame的JPanel.我在UserPanel中有按钮,当我按下按钮时如何关闭StartFrame(我熟悉事件处理它不是问题,问题是如何将信息发送到StartFrame).或者最好只更换框架面板(尺寸,如果需要)并重复使用?

java user-interface swing jpanel jframe

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

React在DOM内部深入获取值

我不熟悉反应,我尝试在登录/表格等方面构建以下抽象.

看看这个:

    var SignUpForm = React.createClass({

    handleSubmit: function(e) {
        e.preventDefault();
        console.log(this.refs.iitu_id.getDOMNode().value.trim())

        // iitu_id = this.refs.iitu_id.getDOMNode().value.trim();
        // password = this.refs.password.getDOMNode().value.trim();

        var error = UserValidator.valid({iitu_id: iitu_id, password: password});
        if (error) {
            this.setState({"errors": error });
            // console.log(error);
        } else {
            // console.log(error);
        }

    },

    getInitialState: function() {
        return {
            'errors': {
                iitu_id: null, 
                password: null
            }
        };
    },

    render: function() {
        return (
            /*jshint ignore:start */
            <form className="form-horizontal" onSubmit={this.handleSubmit} >
                <FormGroup label="iitu id" error_msg={this.state.errors.iitu_id} fieldName="iitu_id" fieldType="text" />
                <FormGroup label="password" error_msg={this.state.errors.password} fieldName="password" fieldType="password" /> …
Run Code Online (Sandbox Code Playgroud)

javascript dom reactjs

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