mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-11-04 09:57:55 +03:00 
			
		
		
		
	Minor changes to examples and docs
This commit is contained in:
		
							parent
							
								
									f6e534321a
								
							
						
					
					
						commit
						8a470f031e
					
				| 
						 | 
					@ -13,6 +13,16 @@ Features:
 | 
				
			||||||
* Optional support for forms as input validation.
 | 
					* Optional support for forms as input validation.
 | 
				
			||||||
* Modular architecture - Easy to extend and modify.
 | 
					* Modular architecture - Easy to extend and modify.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requirements
 | 
				
			||||||
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Python 2.6
 | 
				
			||||||
 | 
					* Django 1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. note::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Support for a wider range of Python & Django versions is planned, but right now django-rest-framework is only tested against these versions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Installation & Setup
 | 
					Installation & Setup
 | 
				
			||||||
--------------------
 | 
					--------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,16 @@ import os
 | 
				
			||||||
import uuid
 | 
					import uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OBJECT_STORE_DIR = os.path.join(settings.MEDIA_ROOT, 'objectstore')
 | 
					OBJECT_STORE_DIR = os.path.join(settings.MEDIA_ROOT, 'objectstore')
 | 
				
			||||||
 | 
					MAX_FILES = 20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def remove_oldest_files(dir, max_files):
 | 
				
			||||||
 | 
					    """Remove the oldest files in a directory 'dir', leaving at most 'max_files' remaining.
 | 
				
			||||||
 | 
					    We use this to limit the number of resources in the sandbox."""
 | 
				
			||||||
 | 
					    filepaths = [os.path.join(dir, file) for file in os.listdir(dir)]
 | 
				
			||||||
 | 
					    ctime_sorted_paths = [item[0] for item in sorted([(path, os.path.getctime(path)) for path in filepaths],
 | 
				
			||||||
 | 
					                                                     key=operator.itemgetter(1), reverse=True)]
 | 
				
			||||||
 | 
					    [os.remove(path) for path in ctime_sorted_paths[max_files:]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ObjectStoreRoot(Resource):
 | 
					class ObjectStoreRoot(Resource):
 | 
				
			||||||
| 
						 | 
					@ -25,6 +35,7 @@ class ObjectStoreRoot(Resource):
 | 
				
			||||||
        key = str(uuid.uuid1())
 | 
					        key = str(uuid.uuid1())
 | 
				
			||||||
        pathname = os.path.join(OBJECT_STORE_DIR, key)
 | 
					        pathname = os.path.join(OBJECT_STORE_DIR, key)
 | 
				
			||||||
        pickle.dump(content, open(pathname, 'wb'))
 | 
					        pickle.dump(content, open(pathname, 'wb'))
 | 
				
			||||||
 | 
					        remove_oldest_files(OBJECT_STORE_DIR, MAX_FILES)
 | 
				
			||||||
        return Response(status.HTTP_201_CREATED, content, {'Location': self.reverse(StoredObject, key=key)})
 | 
					        return Response(status.HTTP_201_CREATED, content, {'Location': self.reverse(StoredObject, key=key)})
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,10 +16,11 @@ import operator
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# We need somewhere to store the code that we highlight
 | 
					# We need somewhere to store the code that we highlight
 | 
				
			||||||
HIGHLIGHTED_CODE_DIR = os.path.join(settings.MEDIA_ROOT, 'pygments')
 | 
					HIGHLIGHTED_CODE_DIR = os.path.join(settings.MEDIA_ROOT, 'pygments')
 | 
				
			||||||
MAX_FILES = 5
 | 
					MAX_FILES = 20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def remove_oldest_files(dir, max_files):
 | 
					def remove_oldest_files(dir, max_files):
 | 
				
			||||||
    """Remove the oldest files in a directory 'dir', leaving at most 'max_files' remaining"""
 | 
					    """Remove the oldest files in a directory 'dir', leaving at most 'max_files' remaining.
 | 
				
			||||||
 | 
					    We use this to limit the number of resources in the sandbox."""
 | 
				
			||||||
    filepaths = [os.path.join(dir, file) for file in os.listdir(dir)]
 | 
					    filepaths = [os.path.join(dir, file) for file in os.listdir(dir)]
 | 
				
			||||||
    ctime_sorted_paths = [item[0] for item in sorted([(path, os.path.getctime(path)) for path in filepaths],
 | 
					    ctime_sorted_paths = [item[0] for item in sorted([(path, os.path.getctime(path)) for path in filepaths],
 | 
				
			||||||
                                                     key=operator.itemgetter(1), reverse=True)]
 | 
					                                                     key=operator.itemgetter(1), reverse=True)]
 | 
				
			||||||
| 
						 | 
					@ -74,4 +75,10 @@ class PygmentsInstance(Resource):
 | 
				
			||||||
            return Resource(status.HTTP_404_NOT_FOUND)
 | 
					            return Resource(status.HTTP_404_NOT_FOUND)
 | 
				
			||||||
        return open(pathname, 'r').read()
 | 
					        return open(pathname, 'r').read()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def delete(self, request, auth, unique_id):
 | 
				
			||||||
 | 
					        """Delete the highlighted snippet."""
 | 
				
			||||||
 | 
					        pathname = os.path.join(HIGHLIGHTED_CODE_DIR, unique_id)
 | 
				
			||||||
 | 
					        if not os.path.exists(pathname):
 | 
				
			||||||
 | 
					            return Resource(status.HTTP_404_NOT_FOUND)
 | 
				
			||||||
 | 
					        return os.remove(pathname)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user