| 
									
										
										
										
											2016-06-03 05:14:56 +08:00
										 |  |  | Subclassing Flask
 | 
					
						
							|  |  |  | =================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The :class:`~flask.Flask` class is designed for subclassing.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-03 06:05:14 +08:00
										 |  |  | For example, you may want to override how request parameters are handled to preserve their order::
 | 
					
						
							| 
									
										
										
										
											2016-06-03 05:14:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-03 06:05:14 +08:00
										 |  |  |     from flask import Flask, Request
 | 
					
						
							|  |  |  |     from werkzeug.datastructures import ImmutableOrderedMultiDict
 | 
					
						
							|  |  |  |     class MyRequest(Request):
 | 
					
						
							|  |  |  |         """Request subclass to override request parameter storage"""
 | 
					
						
							|  |  |  |         parameter_storage_class = ImmutableOrderedMultiDict
 | 
					
						
							| 
									
										
										
										
											2016-06-03 05:14:56 +08:00
										 |  |  |     class MyFlask(Flask):
 | 
					
						
							| 
									
										
										
										
											2016-06-03 06:05:14 +08:00
										 |  |  |         """Flask subclass using the custom request class"""
 | 
					
						
							|  |  |  |         request_class = MyRequest
 | 
					
						
							| 
									
										
										
										
											2016-06-03 05:14:56 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | This is the recommended approach for overriding or augmenting Flask's internal functionality.
 |