小编Spo*_*ouk的帖子

蓝图404错误处理程序不会在蓝图的URL前缀下激活

我用404错误处理程序创建了一个蓝图.但是,当我在蓝图的前缀下找到不存在的URL时,会显示标准的404页面而不是我的自定义页面.如何使蓝图正确处理404错误?

以下是一个演示该问题的简短应用程序.导航到http://localhost:5000/simple/asdf不会显示蓝图的错误页面.

#!/usr/local/bin/python
# coding: utf-8

from flask import *
from config import PORT, HOST, DEBUG

simplepage = Blueprint('simple', __name__, url_prefix='/simple')

@simplepage.route('/')
def simple_root():
    return 'This simple page'

@simplepage.errorhandler(404)
def error_simple(err):
    return 'This simple error 404', err

app = Flask(__name__)
app.config.from_pyfile('config.py')
app.register_blueprint(simplepage)

@app.route('/', methods=['GET'])
def api_get():    
    return render_template('index.html')

if __name__ == '__main__':
    app.run(host=HOST,
            port=PORT,
            debug=DEBUG)
Run Code Online (Sandbox Code Playgroud)

python blueprint flask

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

Golang + nginx + https

我有 - 作为监听器httphttps 转到服务器.Nginx配置为处理http + https的传入请求.证书有序.使用单独的服务器可以在https协议上对它们的查询结果完美运行.但是,当我使用代理nginx时, https没有从服务器和服务器Go获得响应

"http:来自127.0.0.1:54037的TLS握手错误:tls:第一条记录看起来不像是TLS握手

可能是什么问题呢?

客户去:

package main

import (
    "net/http"
    "log"

)

func HelloSSLServer(w http.ResponseWriter, req *http.Request) {
    w.Header().Set("Content-Type", "text/plain")
    w.Write([]byte("This is an example server.\n"))
    // fmt.Fprintf(w, "This is an example server.\n")
    // io.WriteString(w, "This is an example server.\n")
}

func main() {
    http.HandleFunc("/", HelloSSLServer)
    go http.ListenAndServe("192.168.1.2:80", nil)
    err := http.ListenAndServeTLS("localhost:9007", "/etc/letsencrypt/live/somedomain/fullchain.pem", "/etc/letsencrypt/live/somedomain/privkey.pem", nil)

    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }



}
Run Code Online (Sandbox Code Playgroud)

Nginx配置:

server …
Run Code Online (Sandbox Code Playgroud)

https nginx go

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

JSON 嵌套动态结构 Go 解码

有一个关于输入数据的示例。

\n\n
{\n    "status": "OK",\n    "status_code": 100,\n    "sms": {\n        "79607891234": {\n            "status": "ERROR",\n            "status_code": 203,\n            "status_text": "\xd0\x9d\xd0\xb5\xd1\x82 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82\xd0\xb0 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f"\n        },\n        "79035671233": {\n            "status": "ERROR",\n            "status_code": 203,\n            "status_text": "\xd0\x9d\xd0\xb5\xd1\x82 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82\xd0\xb0 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f"\n        },\n        "79105432212": {\n            "status": "ERROR",\n            "status_code": 203,\n            "status_text": "\xd0\x9d\xd0\xb5\xd1\x82 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82\xd0\xb0 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f"\n        }\n    },\n    "balance": 2676.18\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n
{\n    "status": "OK",\n    "status_code": 100,\n    "sms": {\n        "79607891234": {\n            "status": "ERROR",\n            "status_code": 203,\n            "status_text": "\xd0\x9d\xd0\xb5\xd1\x82 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82\xd0\xb0 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f"\n        },\n        "79035671233": {\n            "status": "ERROR",\n            "status_code": 203,\n            "status_text": "\xd0\x9d\xd0\xb5\xd1\x82 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82\xd0\xb0 \xd1\x81\xd0\xbe\xd0\xbe\xd0\xb1\xd1\x89\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f"\n        },\n        "79105432212": {\n            "status": "ERROR",\n            "status_code": …
Run Code Online (Sandbox Code Playgroud)

json struct go

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

为什么FILE*不存储打开文件的地址

#include <stdio.h>

FILE * Openfile(char *filename,char *mode, FILE *fp);

int main(){

    FILE *fp=NULL;
    char *filename = "simple_index.file";
    char *openmode = "w";

    printf("FP(before call function):%p\n", fp);
    FILE *newfp = Openfile(filename, openmode, fp);
    printf("FP(after call function): %p\nNEWFP: %p\n", fp, newfp);                  

    return 0;
}

FILE * Openfile(char *filename,char *mode, FILE *fp){
    printf((fp = fopen(filename, mode)) ? "Good opening %s file\n": "Error open %s file\n", filename);          
    return fp;

}
Run Code Online (Sandbox Code Playgroud)

结果:

FP(before call function):0x0
Good opening simple_index.file file
FP(after call function): 0x0
NEWFP: 0x800bc7140
Run Code Online (Sandbox Code Playgroud)

在使用函数打开调用 …

c

0
推荐指数
2
解决办法
147
查看次数

标签 统计

go ×2

blueprint ×1

c ×1

flask ×1

https ×1

json ×1

nginx ×1

python ×1

struct ×1