小编Dav*_*uan的帖子

python flask从http重定向到https

我有一个使用python3.4和烧瓶的网站构建...我已经生成了自己的自签名证书,我目前正在通过localhost测试我的网站.

我正在使用python ssl模块以及这个烧瓶扩展:https://github.com/kennethreitz/flask-sslify

context = ('my-cert.pem', 'my-key.pem')
app = Flask(__name__)
sslify = SSLify(app)

...

if __name__ == '__main__':
    app.debug = False
    app.run(
    host="127.0.0.1",
    port=int("5000"),
    ssl_context=context
)
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用.我查看了sslify源代码,这行似乎没有用

def init_app(self, app):
    """Configures the configured Flask app to enforce SSL."""
    app.before_request(self.redirect_to_ssl)
    app.after_request(self.set_hsts_header)
Run Code Online (Sandbox Code Playgroud)

特别是函数调用redirect_to_ssl(我在redirect_to_ssl函数下添加了我自己的print语句,我的语句从未打印过)

def redirect_to_ssl(self):
    print("THIS IS WORKING")
    """Redirect incoming requests to HTTPS."""
    Should we redirect?
    criteria = [
        request.is_secure,
        current_app.debug,
        request.headers.get('X-Forwarded-Proto', 'http') == 'https'
    ]

    if not any(criteria) and not self.skip:
        if request.url.startswith('http://'):
            url = request.url.replace('http://', 'https://', 1) …
Run Code Online (Sandbox Code Playgroud)

python ssl flask

18
推荐指数
7
解决办法
3万
查看次数

Android:等待firebase valueEventListener

我正在尝试使用Semaphore等待我的firebase valueEventListener.我有一个用户信息活动,有6个不同的字段,用户必须填写.当用户保存他/她的信息时,我想进行"全有或全无"类型的检查.某些用户信息无法复制...例如用户名,电子邮件和电话号码.我正在使用firebase,目前一般的想法是这样的格式:

void saveUserInfo(){
    if(field1 exist in database){
        return;
    }
    .
    .
    .
    if(field6 exist in database){
        return;
    }

    savefield1();
    .
    .
    .
    savefield6();
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是检查数据库中是否已存在该值的方法.这是我目前的方法:

   public boolean alreadyInUse(String key, String value) throws InterruptedException {

    final StringBuilder done = new StringBuilder("");
    final Semaphore semaphore = new Semaphore(0);

    mDatabase.child(key).child(value).addListenerForSingleValueEvent(new ValueEventListener() {

        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            String result = dataSnapshot.getValue(String.class);
            if(result == null){
                Log.d("WorkoutLog", "result: null");
                done.append("false");
                semaphore.release();
                return;
            }
            else if(result.equals(uID)){
                Log.d("WorkoutLog", "result: " + result.toString());
                done.append("false");
                semaphore.release();
                return; …
Run Code Online (Sandbox Code Playgroud)

android asynchronous semaphore firebase firebase-realtime-database

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