1+ import logging .config
2+ from flask import Flask , jsonify
3+ from flask_restful import Api , Resource , reqparse
4+
5+ logging .config .dictConfig (
6+ {
7+ "version" : 1 ,
8+ "disable_existing_loggers" : False ,
9+ "formatters" : {
10+ "simple" : {"format" : "%(asctime)s - %(name)s - %(levelname)s - %(message)s" }
11+ },
12+ "handlers" : {
13+ "console" : {
14+ "class" : "logging.StreamHandler" ,
15+ "level" : "DEBUG" ,
16+ "formatter" : "simple" ,
17+ "stream" : "ext://sys.stdout" ,
18+ },
19+ "info_file_handler" : {
20+ "class" : "logging.handlers.RotatingFileHandler" ,
21+ "level" : "INFO" ,
22+ "formatter" : "simple" ,
23+ "filename" : "info.log" ,
24+ "maxBytes" : 10485760 ,
25+ "backupCount" : 50 ,
26+ "encoding" : "utf8" ,
27+ },
28+ "error_file_handler" : {
29+ "class" : "logging.handlers.RotatingFileHandler" ,
30+ "level" : "ERROR" ,
31+ "formatter" : "simple" ,
32+ "filename" : "errors.log" ,
33+ "maxBytes" : 10485760 ,
34+ "backupCount" : 20 ,
35+ "encoding" : "utf8" ,
36+ },
37+ "debug_file_handler" : {
38+ "class" : "logging.handlers.RotatingFileHandler" ,
39+ "level" : "DEBUG" ,
40+ "formatter" : "simple" ,
41+ "filename" : "debug.log" ,
42+ "maxBytes" : 10485760 ,
43+ "backupCount" : 50 ,
44+ "encoding" : "utf8" ,
45+ },
46+ },
47+ "loggers" : {
48+ "my_module" : {"level" : "ERROR" , "handlers" : ["console" ], "propagate" : "no" }
49+ },
50+ "root" : {
51+ "level" : "DEBUG" ,
52+ "handlers" : ["error_file_handler" , "debug_file_handler" ],
53+ },
54+ }
55+ )
56+
57+ USERS = [
58+ {"name" : "zhangsan" },
59+ {"name" : "lisi" },
60+ {"name" : "wangwu" },
61+ {"name" : "zhaoliu" }
62+ ]
63+
64+ class Users (Resource ):
65+ def __init__ (self , ** kwargs ):
66+ self .logger = kwargs .get ('logger' )
67+
68+ def get (self ):
69+ return jsonify (USERS )
70+
71+ def post (self ):
72+ args = reqparse .RequestParser () \
73+ .add_argument ('name' , type = str , location = 'json' , required = True , help = "名字不能为空" ) \
74+ .parse_args ()
75+
76+ self .logger .debug (args )
77+
78+ if args ['name' ] not in USERS :
79+ USERS .append ({"name" : args ['name' ]})
80+
81+ return jsonify (USERS )
82+
83+ def delete (self ):
84+ USERS = []
85+ return jsonify (USERS )
86+
87+
88+ class UserId (Resource ):
89+ def __init__ (self , ** kwargs ):
90+ self .logger = kwargs .get ("logger" )
91+
92+ def get (self , userid ):
93+ return jsonify (
94+ {"name" : USERS [int (userid )].get ("name" )}
95+ )
96+
97+
98+ app = Flask (__name__ )
99+ api = Api (app , default_mediatype = "application/json" )
100+
101+ api .add_resource (Users , '/users' , resource_class_kwargs = {
102+ "logger" : logging .getLogger ('/Users' )
103+ })
104+
105+ api .add_resource (UserId , '/user/<userid>' , resource_class_kwargs = {
106+ "logger" : logging .getLogger ('/UserId' )
107+ })
108+
109+ app .run (host = '0.0.0.0' , port = 5001 , use_reloader = True , debug = True )
0 commit comments