Upgrade to Pro — share decks privately, control downloads, hide ads and more …

python sqlite

python sqlite

Python CodeLabs - Python SQLite 3
http://eueung.github.io/python/sqlite

Eueung Mulyana

November 28, 2015
Tweet

More Decks by Eueung Mulyana

Other Decks in Programming

Transcript

  1. Example #1 i m p o r t s q

    l i t e 3 c o n n = s q l i t e 3 . c o n n e c t ( ' e x a m p l e . d b ' ) c = c o n n . c u r s o r ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c . e x e c u t e ( ' ' ' C R E A T E T A B L E s t o c k s ( d a t e t e x t , t r a n s t e x t , s y m b o l t e x t , q t y r e a l , p r i c e r e a l ) ' ' ' ) c . e x e c u t e ( " I N S E R T I N T O s t o c k s V A L U E S ( ' 2 0 0 6 - 0 1 - 0 5 ' , ' B U Y ' , ' R H A T ' , 1 0 0 , 3 5 . 1 4 ) " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - f o r r o w i n c . e x e c u t e ( ' S E L E C T * F R O M s t o c k s O R D E R B Y p r i c e ' ) : p r i n t r o w # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c o n n . c o m m i t ( ) c o n n . c l o s e ( ) ( u ' 2 0 0 6 - 0 1 - 0 5 ' , u ' B U Y ' , u ' R H A T ' , 1 0 0 . 0 , 3 5 . 1 4 ) 3 / 12
  2. ( u ' 2 0 0 6 - 0 1

    - 0 5 ' , u ' B U Y ' , u ' R H A T ' , 1 0 0 . 0 , 3 5 . 1 4 ) ( u ' 2 0 0 6 - 0 1 - 0 5 ' , u ' B U Y ' , u ' R H A T ' , 1 0 0 . 0 , 3 5 . 1 4 ) ( u ' 2 0 0 6 - 0 3 - 2 8 ' , u ' B U Y ' , u ' I B M ' , 1 0 0 0 . 0 , 4 5 . 0 ) ( u ' 2 0 0 6 - 0 4 - 0 6 ' , u ' S E L L ' , u ' I B M ' , 5 0 0 . 0 , 5 3 . 0 ) ( u ' 2 0 0 6 - 0 4 - 0 5 ' , u ' B U Y ' , u ' M S F T ' , 1 0 0 0 . 0 , 7 2 . 0 ) Example #2 i m p o r t s q l i t e 3 c o n n = s q l i t e 3 . c o n n e c t ( ' e x a m p l e . d b ' ) c = c o n n . c u r s o r ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - t = ( ' R H A T ' , ) c . e x e c u t e ( ' S E L E C T * F R O M s t o c k s W H E R E s y m b o l = ? ' , t ) p r i n t c . f e t c h o n e ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # L a r g e r e x a m p l e t h a t i n s e r t s m a n y r e c o r d s a t a t i m e p u r c h a s e s = [ ( ' 2 0 0 6 - 0 3 - 2 8 ' , ' B U Y ' , ' I B M ' , 1 0 0 0 , 4 5 . 0 0 ) , ( ' 2 0 0 6 - 0 4 - 0 5 ' , ' B U Y ' , ' M S F T ' , 1 0 0 0 , 7 2 . 0 0 ) , ( ' 2 0 0 6 - 0 4 - 0 6 ' , ' S E L L ' , ' I B M ' , 5 0 0 , 5 3 . 0 0 ) , ] c . e x e c u t e m a n y ( ' I N S E R T I N T O s t o c k s V A L U E S ( ? , ? , ? , ? , ? ) ' , p u r c h a s # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - f o r r o w i n c . e x e c u t e ( ' S E L E C T * F R O M s t o c k s O R D E R B Y p r i c e ' ) : p r i n t r o w # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c o n n . c o m m i t ( ) c o n n . c l o s e ( ) 4 / 12
  3. See SQLite Python Tutorial i m p o r t

    s q l i t e 3 c o n n = s q l i t e 3 . c o n n e c t ( ' e x a m p l e . d b ' ) # f i r s t , e x e c u t e w i t h o u t c = c o n n . c u r s o r ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f e x e c p r i n t ( s t r i n ) : r e s = c o n n . e x e c u t e ( s t r i n ) f o r r o w i n r e s : p r i n t " I D = " , r o w [ 0 ] p r i n t " N A M E = " , r o w [ 1 ] p r i n t " A D D R E S S = " , r o w [ 2 ] p r i n t " S A L A R Y = " , r o w [ 3 ] , " \ n " # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c o n n . e x e c u t e ( ' ' ' C R E A T E T A B L E C O M P A N Y ( I D I N T P R I M A R Y K E Y N O T N U L L , N A M E T E X T N O T N U L L , A G E I N T N O T N U L L , A D D R E S S C H A R ( 5 0 ) , S A L A R Y R E A L ) ; ' ' ' ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c o n n . e x e c u t e ( " I N S E R T I N T O C O M P A N Y ( I D , N A M E , A G E , A D D R E S S , S A L A R Y ) V A L U E S ( 1 , ' P a u l ' , 3 2 , ' C a l i f o r n i a ' , 2 0 0 0 0 . 0 0 ) " c o n n . e x e c u t e ( " I N S E R T I N T O C O M P A N Y ( I D , N A M E , A G E , A D D R E S S , S A L A R Y ) V A L U E S ( 2 , ' A l l e n ' , 2 5 , ' T e x a s ' , 1 5 0 0 0 . 0 0 ) " c o n n . e x e c u t e ( " I N S E R T I N T O C O M P A N Y ( I D , N A M E , A G E , A D D R E S S , S A L A R Y ) V A L U E S ( 3 , ' T e d d y ' , 2 3 , ' N o r w a y ' , 2 0 0 0 0 . 0 0 ) " c o n n . e x e c u t e ( " I N S E R T I N T O C O M P A N Y ( I D , N A M E , A G E , A D D R E S S , S A L A R Y ) V A L U E S ( 4 , ' M a r k ' , 2 5 , ' R i c h - M o n d ' , 6 5 0 0 0 . 0 0 ) " e x e c p r i n t ( " S E L E C T i d , n a m e , a d d r e s s , s a l a r y f r o m C O M P A N Y " ) Example #3 I D = 1 . . . I D = 1 N A M E = P a u l A D D R E S S = C a l i f o r n i a S A L A R Y = 2 5 0 0 0 . 0 ( 1 , u ' P a u l ' , u ' C a l i f o r n i a ' , 2 5 0 0 0 . 0 ) ( 3 , u ' T e d d y ' , u ' N o r w a y ' , 2 0 0 0 0 . 0 ) ( 4 , u ' M a r k ' , u ' R i c h - M o n d ' , 6 5 0 0 0 . 0 ) T o t a l n u m b e r o f r o w s u p d a t e d : 6 c o n n . e x e c u t e ( " U P D A T E C O M P A N Y s e t S A L A R Y = 2 5 0 0 0 . 0 0 w h e r e I D = 1 " e x e c p r i n t ( " S E L E C T i d , n a m e , a d d r e s s , s a l a r y f r o m C O M P A N Y w h e r # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - c o n n . e x e c u t e ( " D E L E T E f r o m C O M P A N Y w h e r e I D = 2 ; " ) f o r r o w i n c o n n . e x e c u t e ( " S E L E C T i d , n a m e , a d d r e s s , s a l a r y f r o p r i n t r o w # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - p r i n t " T o t a l n u m b e r o f r o w s u p d a t e d : " , c o n n . t o t a l _ c h a n g e s c o n n . c o m m i t ( ) c o n n . c l o s e ( ) 5 / 12
  4. Example #4 i m p o r t s q

    l i t e 3 f r o m f l a s k i m p o r t F l a s k , g # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - D A T A B A S E = ' d a t a b a s e . d b ' a p p = F l a s k ( _ _ n a m e _ _ ) a p p . c o n f i g . f r o m _ o b j e c t ( _ _ n a m e _ _ ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f i n i t _ d b ( ) : w i t h a p p . a p p _ c o n t e x t ( ) : d b = g e t _ d b ( ) w i t h a p p . o p e n _ r e s o u r c e ( ' s c h e m a . s q l ' , m o d e = ' r ' ) a s f : d b . c u r s o r ( ) . e x e c u t e s c r i p t ( f . r e a d ( ) ) d b . c o m m i t ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f c o n n e c t _ d b ( ) : r v = s q l i t e 3 . c o n n e c t ( a p p . c o n f i g [ ' D A T A B A S E ' ] ) r v . r o w _ f a c t o r y = s q l i t e 3 . R o w r e t u r n r v # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f g e t _ d b ( ) : d b = g e t a t t r ( g , ' _ d a t a b a s e ' , N o n e ) i f d b i s N o n e : d b = g . _ d a t a b a s e = c o n n e c t _ d b ( ) r e t u r n d b # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f q u e r y _ d b ( q u e r y , a r g s = ( ) , o n e = F a l s e ) : c u r = g e t _ d b ( ) . e x e c u t e ( q u e r y , a r g s ) r v = c u r . f e t c h a l l ( ) c u r . c l o s e ( ) r e t u r n ( r v [ 0 ] i f r v e l s e N o n e ) i f o n e e l s e r v 7 / 12
  5. d e f s e e d _ d b

    ( ) : w i t h a p p . a p p _ c o n t e x t ( ) : d b = g e t _ d b ( ) s e e d u s e r s = [ ( ' u j a n g ' , ) , ( ' o t o n g ' , ) , ] d b . e x e c u t e m a n y ( ' I N S E R T I N T O u s e r s ( u s e r n a m e ) V A L U E S ( ? ) ' # d b . e x e c u t e ( " I N S E R T I N T O u s e r s ( u s e r n a m e ) V A L U E S ( ' u j a n g ' ) " ) # d b . e x e c u t e ( " I N S E R T I N T O u s e r s ( u s e r n a m e ) V A L U E S ( ' o t o n g ' ) " ) d b . c o m m i t ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f p r i n t _ d b ( ) : w i t h a p p . a p p _ c o n t e x t ( ) : f o r u s e r i n q u e r y _ d b ( ' s e l e c t * f r o m u s e r s ' ) : p r i n t u s e r [ ' u s e r n a m e ' ] , ' h a s t h e i d ' , u s e r [ ' i d ' ] d e f p r i n t _ d b _ o n e ( t h e _ u s e r n a m e ) : w i t h a p p . a p p _ c o n t e x t ( ) : u s e r = q u e r y _ d b ( ' s e l e c t * f r o m u s e r s w h e r e u s e r n a m e = ? ' i f u s e r i s N o n e : p r i n t ' N o s u c h u s e r ' e l s e : p r i n t t h e _ u s e r n a m e , ' h a s t h e i d ' , u s e r [ ' i d ' ] # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f c l o s e _ d b ( ) : w i t h a p p . a p p _ c o n t e x t ( ) : d b = g e t a t t r ( g , ' _ d a t a b a s e ' , N o n e ) i f d b i s n o t N o n e : d b . c l o s e ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - i n i t _ d b ( ) s e e d _ d b ( ) p r i n t _ d b ( ) p r i n t _ d b _ o n e ( ' o t o n g ' ) c l o s e _ d b ( ) Example #4 u j a n g h a s t h e i d 1 o t o n g h a s t h e i d 2 o t o n g h a s t h e i d 2 8 / 12
  6. Example #5 [ { ' u s e r n

    a m e ' : u ' u j a n g ' , ' i d ' : 1 } , { ' u s e r n a m e ' : u ' o t o n g ' , ' i d ' 1 2 7 . 0 . 0 . 1 - - [ 2 8 / N o v / 2 0 1 5 1 5 : 3 7 : 0 9 ] " G E T / H T T P / 1 . 1 " 2 0 0 - i m p o r t s q l i t e 3 f r o m f l a s k i m p o r t F l a s k , g , j s o n i f y # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - D A T A B A S E = ' d a t a b a s e . d b ' a p p = F l a s k ( _ _ n a m e _ _ ) a p p . c o n f i g . f r o m _ o b j e c t ( _ _ n a m e _ _ ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f i n i t _ d b ( ) : # a s p r e v i o u s l y # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f m a k e _ d i c t s ( c u r , r o w ) : r e t u r n d i c t ( ( c u r . d e s c r i p t i o n [ i d x ] [ 0 ] , v a l u e ) f o r i d x , v a l u d e f c o n n e c t _ d b ( ) : r v = s q l i t e 3 . c o n n e c t ( a p p . c o n f i g [ ' D A T A B A S E ' ] ) # r v . r o w _ f a c t o r y = s q l i t e 3 . R o w r v . r o w _ f a c t o r y = m a k e _ d i c t s r e t u r n r v # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f g e t _ d b ( ) : # a s p r e v i o u s l y # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - d e f q u e r y _ d b ( q u e r y , a r g s = ( ) , o n e = F a l s e ) : # a s p r e v i o u s l y 9 / 12
  7. Example #5 Another Possibility (cf. JSON security) f r o

    m f l a s k i m p o r t R e s p o n s e i m p o r t j s o n # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @ a p p . r o u t e ( ' / ' ) d e f i n d e x ( ) : r e s = q u e r y _ d b ( ' s e l e c t * f r o m u s e r s ' ) r e t u r n R e s p o n s e ( j s o n . d u m p s ( r e s ) , m i m e t y p e = ' a p p l i c a t i o n / j s o n ' @ a p p . t e a r d o w n _ a p p c o n t e x t d e f c l o s e _ c o n n e c t i o n ( e x c e p t i o n ) : d b = g e t a t t r ( g , ' _ d a t a b a s e ' , N o n e ) i f d b i s n o t N o n e : d b . c l o s e ( ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @ a p p . r o u t e ( ' / ' ) d e f i n d e x ( ) : r e s = q u e r y _ d b ( ' s e l e c t * f r o m u s e r s ' ) p r i n t r e s r e t u r n j s o n i f y ( r e s u l t s = r e s ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - i f _ _ n a m e _ _ = = ' _ _ m a i n _ _ ' : a p p . r u n ( h o s t = ' 0 . 0 . 0 . 0 ' , d e b u g = T r u e ) 10 / 12
  8. References sqlite3 - DB-API 2.0 - Python Documentation Using SQLite

    3 with Flask — Flask Documentation 11 / 12