我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.core.files.base.File()。
def is_valid(self, value, params): if isinstance(value, basestring): self.message = _('The {{key}} must be between {min} and {max} characters.').format( min=self.min_value, max=self.max_value ) return self.min_value <= len(value) <= self.max_value elif isinstance(value, File): self.message = _('The {{key}} must be between {min} and {max} bytes.').format( min=self.min_value, max=self.max_value ) return self.min_value <= value.size <= self.max_value else: self.message = _('The {{key}} must be between {min} and {max}.').format( min=self.min_value, max=self.max_value ) return self.min_value <= value <= self.max_value
def add_view(self, request, form_url='', extra_context=None): # Prepopulate new configuration entries with the value of the current config, if given: if 'source' in request.GET: get = request.GET.copy() source_id = int(get.pop('source')[0]) source = get_object_or_404(self.model, pk=source_id) source_dict = models.model_to_dict(source) for field_name, field_value in source_dict.items(): # read files into request.FILES, if: # * user hasn't ticked the "clear" checkbox # * user hasn't uploaded a new file if field_value and isinstance(field_value, File): clear_checkbox_name = '{0}-clear'.format(field_name) if request.POST.get(clear_checkbox_name) != 'on': request.FILES.setdefault(field_name, field_value) get[field_name] = field_value request.GET = get # Call our grandparent's add_view, skipping the parent code # because the parent code has a different way to prepopulate new configuration entries # with the value of the latest config, which doesn't make sense for keyed models. # pylint: disable=bad-super-call return super(ConfigurationModelAdmin, self).add_view(request, form_url, extra_context)
def _extarct_only_robot(xmlfile): """remove from file not robot's elements robot elements are: 'suite' 'statistics' 'errors' """ original_doc = ET.parse(xmlfile) root = original_doc.getroot() devices = root.find("devices") if devices is not None: root.remove(devices) source = StringIO(ET.tostring(root)) ets = ETSource(source) execution_result = ExecutionResultBuilder(ets).build(Result()) patched_file = File(BytesIO(force_bytes(source.getvalue())), name=xmlfile.name) return (execution_result, patched_file)
def authenticate(self, facebook_id, extra_fields=None): url_profile = 'https://graph.facebook.com/{user_id}/picture'.format( user_id=facebook_id, ) params = { 'type': 'large', 'width': '500', 'height': '500', } # ????? ???? ?? temp_file = NamedTemporaryFile(delete=False) # ??? ???? URL? get??, stream? True?? r = requests.get(url_profile, params, stream=True) # ???? URL?? ?? ???? ??? _, file_ext = os.path.splitext(r.url) file_ext = re.sub(r'(\.[^?]+).*', r'\1', file_ext) # ???? ?? ID.??? ? file_name? ?? file_name = '{}{}'.format( facebook_id, file_ext ) # stream?? ??? response?? 1024bytes??? ???? ?? ????? ?? for chunk in r.iter_content(1024): temp_file.write(chunk) # facebook_id? username? MyUser? ????? # defaults?? ???? ?? defaults = { 'first_name': extra_fields.get('first_name', ''), 'last_name': extra_fields.get('last_name', ''), 'email': extra_fields.get('email', ''), } user, user_created = MyUser.objects.get_or_create( defaults=defaults, username=facebook_id ) # ImageField? save???? ???? Django?? ???? File??? ?? user.img_profile.save(file_name, File(temp_file)) return user
def django_file(cls, extension=None): """Generates a random file. Example: >>> from factory import DjangoModelFactory >>> >>> class ProductFactory(DjangoModelFactory): >>> "Product factory." >>> >>> # ... >>> >>> image_file = Faker('django_file', extension='image') >>> video_file = Faker('django_file', extension='video') >>> text_file = Faker('django_file', extension='text') >>> >>> # ... :param extension: File extension. :type extension: str :return: File object. """ fake = FakerFaker() django_file = get_temporary_file(fake.file_name(extension=extension)) return File(django_file)
def test_file(self): """ Test for file upload decorator. """ @FILE('f', type='file') def view(request, f): self.assertIsInstance(f, File) test_file = io.StringIO() self.post(view, data={'f': test_file})
def is_valid(self, value, params): if isinstance(value, basestring): self.message = _('The {{key}} must be at least {min} characters.').format(min=self.min_value) return len(value) >= self.min_value elif isinstance(value, File): self.message = _('The {{key}} must be at least {min} bytes.'.format(min=self.min_value)) return value.size >= self.min_value else: self.message = _('The {{key}} must be at least {min}.').format(min=self.min_value) return value >= self.min_value
def is_valid(self, value, params): if isinstance(value, basestring): self.message = _('The {{key}} may not be greater than {max} characters.').format(max=self.max_value) return len(value) <= self.max_value elif isinstance(value, File): self.message = _('The {{key}} must not be at greater {max} bytes.'.format(max=self.max_value)) return value.size <= self.max_value else: self.message = _('The {{key}} may not be greater than {max}.').format(max=self.max_value) return value <= self.max_value
def _set_name(self, name): # Sanitize the file name so that it can't be dangerous. if name is not None: # Just use the basename of the file -- anything else is dangerous. name = os.path.basename(name) # File names longer than 255 characters can cause problems on older OSes. if len(name) > 255: name, ext = os.path.splitext(name) ext = ext[:255] name = name[:255 - len(ext)] + ext self._name = name
def __hash__(self): return hash(self.name) # The standard File contains most of the necessary properties, but # FieldFiles can be instantiated without a name, so that needs to # be checked for here.
def get_prep_value(self, value): "Returns field's value prepared for saving into a database." value = super(FileField, self).get_prep_value(value) # Need to convert File objects provided via a form to unicode for database insertion if value is None: return None return six.text_type(value)
def __init__(self, request, stream, filename=None, *args, **kwargs): if isinstance(stream, str): stream = open(stream, 'rb') super().__init__(streaming_content=stream, *args, **kwargs) # filename if filename is None: if hasattr(stream, 'name'): filename = os.path.basename(stream.name) else: filename = 'file' # size if isinstance(stream, File): self['Content-Length'] = stream.size elif hasattr(stream, 'name'): self['Content-Length'] = os.path.getsize(stream.name) type_name, encoding = mimetypes.guess_type(filename) if type_name is None: type_name = 'application/octet-stream' self['Content-Type'] = type_name if encoding is not None: self['Content-Encoding'] = encoding # To inspect details for the below code, see http://greenbytes.de/tech/tc2231/ if 'HTTP_USER_AGENT' in request.META and 'MSIE' in request.META['HTTP_USER_AGENT']: # IE does not support internationalized filename at all. # It can only recognize internationalized URL, so we do the trick via routing rules. filename_header = '' else: # For others like Firefox, we follow RFC2231 (encoding extension in HTTP headers). filename_header = 'filename*=UTF-8\'\'%s' % quote(filename) self['Content-Disposition'] = 'attachment; ' + filename_header
def test_media_file_hash(self): name = "screenshot.png" media_file = os.path.join( self.this_directory, 'fixtures', 'transportation', name) m = MetaData.objects.create( data_type='media', xform=self.xform, data_value=name, data_file=File(open(media_file), name), data_file_type='image/png') f = open(media_file) media_hash = 'md5:%s' % hashlib.md5(f.read()).hexdigest() f.close() meta_hash = m.hash self.assertEqual(meta_hash, media_hash) self.assertEqual(m.file_hash, media_hash)
def setUp(self): super(self.__class__, self).setUp() self._publish_transportation_form_and_submit_instance() self.media_file = "1335783522563.jpg" media_file = os.path.join( self.this_directory, 'fixtures', 'transportation', 'instances', self.surveys[0], self.media_file) self.instance = Instance.objects.all()[0] self.attachment = Attachment.objects.create( instance=self.instance, media_file=File(open(media_file), media_file))
def write(self, content): if 'w' not in self._mode: raise AttributeError("File was opened for read-only access.") self.file = StringIO(content) self._is_dirty = True
def write(self, content): if 'w' not in self._mode: raise AttributeError("File was opened for read-only access.") self.file.write(force_bytes(content)) self._is_dirty = True self._is_read = True
def _save(self, name, content): cleaned_name = self._clean_name(name) name = self._normalize_name(cleaned_name) if hasattr(content, 'open'): # Since Django 1.6, content should be a instance # of `django.core.files.File` content.open() res = self._put_file(name, content) content.close() return '/%s'%res
def _set_file(self, value): if value is not None and not isinstance(value, File): value = File(value) self._file = value self._committed = False
def _set_name(self, name): # Sanitize the file name so that it can't be dangerous. if name is not None: # Just use the basename of the file -- anything else is dangerous. name = os.path.basename(name) # File names longer than 255 characters can cause problems on older OSes. if len(name) > 255: name, ext = os.path.splitext(name) name = name[:255 - len(ext)] + ext self._name = name
def getfile(self, *args, **kwargs): if self.blob: return self.blob.getfile() return FileObj(ChunkedFileBlobIndexWrapper(FileBlobIndex.objects.filter( file=self, ).select_related('blob').order_by('offset')), 'rb')