[19026] 2016-10-31_打造pythonweb框架(三)PythonWSGI架构升级

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-18
2016-10-31_打造pythonweb框架(三)PythonWSGI架构升级 p y t h o n   w e b   ( ) :   P y t h o n   W S G I     i n n 0 t e a m   2 0 1 6 - 1 0 - 3 1 w e b W S G I c l a s s   W S G I a p p ( o b j e c t ) : #   r o u t e s d e f   _ _ i n i t _ _ ( s e l f ) : s e l f . r o u t e s   =   { } #   r o u t e s   d e f   r o u t e ( s e l f , p a t h = N o n e ) : d e f   d e c o r a t o r ( f u n c ) : s e l f . r o u t e s [ p a t h ]   =   f u n c r e t u r n   f u n c r e t u r n   d e c o r a t o r #   w s g i d e f   _ _ c a l l _ _ ( s e l f , e n v i r o n , s t a r t _ r e s p o n s e ) : p r i n t   ' c a l l ' r e t u r n   s e l f . w s g i ( e n v i r o n , s t a r t _ r e s p o n s e ) d e f   w s g i ( s e l f , e n v i r o n , s t a r t _ r e s p o n s e ) : p a t h   =   e n v i r o n [ ' P A T H _ I N F O ' ]   #   p r i n t   p a t h i f   p a t h   i n   s e l f . r o u t e s : s t a t u s   =   ' 2 0 0   O K '   #   2 0 0 r e s p o n s e _ h e a d e r s   =   [ ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) ] s t a r t _ r e s p o n s e ( s t a t u s , r e s p o n s e _ h e a d e r s ) p r i n t   s e l f . r o u t e s [ p a t h ] ( ) r e t u r n   s e l f . r o u t e s [ p a t h ] ( )   #   e l s e : s t a t u s   =   ' 4 0 4   N o t   F o u n d '   #   访 4 0 4 r e s p o n s e _ h e a d e r s   =   [ ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) ] s t a r t _ r e s p o n s e ( s t a t u s , r e s p o n s e _ h e a d e r s ) r e t u r n   ' 4 0 4   N o t   F o u n d ! ' a p p   =   W S G I a p p ( )   #   a p p . r o u t e ( ' / ' )   #   d e f   i n d e x ( ) :   #   r e t u r n   [ ' T h i s   i s   i n d e x ' ]   #   @ a p p . r o u t e ( ' / h e l l o ' )   #   d e f   h e l l o ( ) : r e t u r n   [ ' h e l l o ' ]   #  
f r o m   w s g i r e f . s i m p l e _ s e r v e r   i m p o r t   m a k e _ s e r v e r h t t p d   =   m a k e _ s e r v e r ( ' ' , 8 0 0 0 , a p p ) p r i n t   ' s t a r t . . . . ' h t t p d . s e r v e _ f o r e v e r ( ) ` ` ` p y t h o n c l a s s   W S G I a p p ( o b j e c t ) : d e f   _ _ i n i t _ _ ( s e l f ) : s e l f . r o u t e s   =   { } d e f   r o u t e ( s e l f , p a t h = N o n e ) : d e f   d e c o r a t o r ( f u n c ) : s e l f . r o u t e s [ p a t h ]   =   f u n c r e t u r n   f u n c r e t u r n   d e c o r a t o r d e f   _ _ c a l l _ _ ( s e l f , e n v i r o n , s t a r t _ r e s p o n s e ) : r e t u r n   s e l f . w s g i ( e n v i r o n , s t a r t _ r e s p o n s e ) d e f   w s g i ( s e l f , e n v i r o n , s t a r t _ r e s p o n s e ) : p a t h   =   e n v i r o n [ ' P A T H _ I N F O ' ] p r i n t   p a t h i f   p a t h   i n   s e l f . r o u t e s : s t a t u s   =   ' 2 0 0   O K ' r e s p o n s e _ h e a d e r s   =   [ ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) ] s t a r t _ r e s p o n s e ( s t a t u s , r e s p o n s e _ h e a d e r s ) p r i n t   s e l f . r o u t e s [ p a t h ] ( ) r e t u r n   s e l f . r o u t e s [ p a t h ] ( ) e l s e : s t a t u s   =   ' 4 0 4   N o t   F o u n d ' r e s p o n s e _ h e a d e r s   =   [ ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) ] s t a r t _ r e s p o n s e ( s t a t u s , r e s p o n s e _ h e a d e r s ) r e t u r n   ' 4 0 4   N o t   F o u n d ! ' a p p   =   W S G I a p p ( ) @ a p p . r o u t e ( ' / ' ) d e f   i n d e x ( ) : r e t u r n   [ ' T h i s   i s   i n d e x ' ] @ a p p . r o u t e ( ' / h e l l o ' ) d e f   h e l l o ( ) : r e t u r n   [ ' h e l l o ' ] f r o m   w s g i r e f . s i m p l e _ s e r v e r   i m p o r t   m a k e _ s e r v e r h t t p d   =   m a k e _ s e r v e r ( ' ' , 8 0 0 0 , a p p ) p r i n t   ' s t a r t . . . . ' h t t p d . s e r v e _ f o r e v e r ( )
W S G I i m p o r t   r e   # c l a s s   W S G I a p p : h e a d e r s   =   [ ] d e f   _ _ i n i t _ _ ( s e l f , u r l s = ( ) ) : s e l f . u r l s   =   u r l s s e l f . s t a t u s   =   ' 2 0 0   O K ' d e f   _ _ c a l l _ _ ( s e l f , e n v i r o n , s t a r t _ r e s p o n s e ) : x   =   s e l f . m a p p i n g _ u r l s ( e n v i r o n ) s t a r t _ r e s p o n s e ( s e l f . s t a t u s , s e l f . h e a d e r s ) i f   i s i n s t a n c e ( x , s t r ) : r e t u r n   i t e r ( [ x ] ) e l s e : r e t u r n   i t e r ( x ) d e f   m a p p i n g _ u r l s ( s e l f , e n v i r o n ) :   #   p a t h   =   e n v i r o n [ ' P A T H _ I N F O ' ]   #  
f o r   p a t t e r n , n a m e   i n   s e l f . u r l s : m   =   r e . m a t c h ( ' ^ ' + p a t t e r n + ' $ ' , p a t h ) i f   m : a r g s   =   m . g r o u p s ( ) f u n c   =   g l o b a l s ( ) [ n a m e ] r e t u r n   f u n c ( * a r g s ) r e t u r n   s e l f . n o t f o u n d ( ) d e f   n o t f o u n d ( s e l f ) :   #   4 0 4 s e l f . s t a t u s   =   ' 4 0 4   N o t   F o u n d ' s e l f . h e a d e r s   =   [ ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) ] r e t u r n   ' 4 0 4   N o t   F o u n d n ' @ c l a s s m e t h o d   #   d e f   h e a d e r ( c l s , n a m e , v a l u e ) : c l s . h e a d e r s . a p p e n d ( ( n a m e , v a l u e ) ) , d e f   G E T _ i n d e x ( * a r g s ) : W S G I a p p . h e a d e r ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) r e t u r n   ' W e l c o m e ! n ' d e f   G E T _ h e l l o ( * a r g s ) : W S G I a p p . h e a d e r ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) r e t u r n   ' H e l l o   % s ! n '   %   a r g s u r l s   =   [ ( ' / ' , ' G E T _ i n d e x ' ) , ( ' / h e l l o / ( . * ) ' , ' G E T _ h e l l o ' ) ] w s g i a p p   =   W S G I a p p ( u r l s ) i f   _ _ n a m e _ _   = =   ' _ _ m a i n _ _ ' : f r o m   w s g i r e f . s i m p l e _ s e r v e r   i m p o r t   m a k e _ s e r v e r h t t p d   =   m a k e _ s e r v e r ( ' ' , 8 0 0 0 , w s g i a p p ) p r i n t   ' s e r v e r   s t a r t i n g . . . ' h t t p d . s e r v e _ f o r e v e r ( ) i m p o r t   r e c l a s s   W S G I a p p : h e a d e r s   =   [ ] d e f   _ _ i n i t _ _ ( s e l f , u r l s = ( ) ) : s e l f . u r l s   =   u r l s s e l f . s t a t u s   =   ' 2 0 0   O K ' d e f   _ _ c a l l _ _ ( s e l f , e n v i r o n , s t a r t _ r e s p o n s e ) : x   =   s e l f . m a p p i n g _ u r l s ( e n v i r o n )
p r i n t   x s t a r t _ r e s p o n s e ( s e l f . s t a t u s , s e l f . h e a d e r s ) i f   i s i n s t a n c e ( x , s t r ) : r e t u r n   i t e r ( [ x ] ) e l s e : r e t u r n   i t e r ( x ) d e f   m a p p i n g _ u r l s ( s e l f , e n v i r o n ) : p a t h   =   e n v i r o n [ ' P A T H _ I N F O ' ] f o r   p a t t e r n , n a m e   i n   s e l f . u r l s : m   =   r e . m a t c h ( ' ^ ' + p a t t e r n + ' $ ' , p a t h ) i f   m : a r g s   =   m . g r o u p s ( ) f u n c   =   g l o b a l s ( ) [ n a m e ] r e t u r n   f u n c ( * a r g s ) r e t u r n   s e l f . n o t f o u n d ( ) d e f   n o t f o u n d ( s e l f ) : s e l f . s t a t u s   =   ' 4 0 4   N o t   F o u n d ' s e l f . h e a d e r s   =   [ ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) ] r e t u r n   ' 4 0 4   N o t   F o u n d n ' @ c l a s s m e t h o d d e f   h e a d e r ( c l s , n a m e , v a l u e ) : c l s . h e a d e r s . a p p e n d ( ( n a m e , v a l u e ) ) d e f   G E T _ i n d e x ( * a r g s ) : W S G I a p p . h e a d e r ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) r e t u r n   ' W e l c o m e ! n ' d e f   G E T _ h e l l o ( * a r g s ) : W S G I a p p . h e a d e r ( ' C o n t e n t - T y p e ' , ' t e x t / p l a i n ' ) r e t u r n   ' H e l l o   % s ! n '   %   a r g s u r l s   =   [ ( ' / ' , ' G E T _ i n d e x ' ) , ( ' / h e l l o / ( . * ) ' , ' G E T _ h e l l o ' ) ] w s g i a p p   =   W S G I a p p ( u r l s ) i f   _ _ n a m e _ _   = =   ' _ _ m a i n _ _ ' : f r o m   w s g i r e f . s i m p l e _ s e r v e r   i m p o r t   m a k e _ s e r v e r h t t p d   =   m a k e _ s e r v e r ( ' ' , 8 0 0 0 , w s g i a p p ) p r i n t   ' s e r v e r   s t a r t i n g . . . ' h t t p d . s e r v e _ f o r e v e r ( )
i n n 0 t e a m i n n 0 t e a m
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则