示例#1
0
def upload_pic(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        imageName = str(request.FILES['image'])
        print "Hello this is :"+imageName
        # print request.POST
        if form.is_valid():
            m = ExampleModel()
            m.model_pic = form.cleaned_data['image']
            m.save()

            im = imClassify.imClassify()
            imagePath = 'utilities/images/'+imageName
            resultList = im.main(imagePath)
            print  "THi is view ;;;;;; ------ ;;;;"
            print resultList

            # Considering only the first string
            # [['giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca', 0.89233041], ['indri, indris, Indri indri, Indri brevicaudatus', 0.0085870409], ['lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens', 0.0026423461], ['custard apple', 0.0014067066], ['earthstar', 0.0010706335]]
            nameOfTopic = resultList[0][0].split(",")[0]
            print nameOfTopic

            du = duckduckGo.duckduckGo()
            description = du.getInfo(nameOfTopic)

            print description

            # Now deleting the file
            if os.path.isfile(imagePath):
                os.remove(imagePath)

            return render(request,'result.html',{'imageName':nameOfTopic, 'description':description})
    return HttpResponseForbidden('allowed only via POST')
示例#2
0
文件: views.py 项目: longnight/ajax
def img_upload(request):
    if request.method == 'POST':
        img_form = ImageUploadForm(request.POST, request.FILES)
        if img_form.is_valid():
            img_path = ImagsPath(img=img_form.cleaned_data.get('img'))
            img_path.save()
            # location = img_path.img.url
            location = 'http://' + request.get_host() + img_path.img.url
            # rv = {'location': location}
            # print rv
            status = 200
            print location
            # import pdb;pdb.set_trace()
            script_string = """
            <script>top.$('.mce-btn.mce-open').parent().find('.mce-textbox').val('%s').closest('.mce-window').find('.mce-primary').click();</script>
            """ % location
            sleep(3)
            return HttpResponse(script_string, status=status)
        else:
            rv = img_form.errors
            print rv
            status = 409
            return HttpResponse("<script>alert('%s');</script>" %
                                img_form.errors,
                                status=status)
示例#3
0
def upload_profile_image(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            # Save original image to DB and file system to get real path
            uploaded_img = request.FILES.get('image')
            file_content = ContentFile(uploaded_img.read())
            profile_img, created = ProfileImage.objects.get_or_create(user=request.user)
            profile_img.image.save(str(profile_img.id) + '.jpg', file_content)
            profile_img.save()

            # Resize image and save to thumbnail field
            handle_uploaded_image(profile_img)

            # redirect to image upload form with preview after POST
            return HttpResponseRedirect(reverse('ergo_users.views.upload_profile_image'))
    else:
        form = ImageUploadForm() # empty form

    # Load image preview for upload image page
    try:
        profile_img = ProfileImage.objects.get(user=request.user)
    except ProfileImage.DoesNotExist:
        profile_img = None

    return render_to_response('users/upload-image.html', {'profile_img': profile_img, 'form': form}, RequestContext(request))
示例#4
0
def image_upload(request):
    user = request.user
    if request.method != 'POST':
        return HttpResponse(status=404)
    else:
        form = ImageUploadForm(request.POST, request.FILES)
        form.author = user
        if form.is_valid():
            iu = form.save()
            item_id = request.GET.get('item_id', None)
            if item_id:
                item = Item.objects.get(id=int(item_id))
                iu.content_object = item
                iu.save()
            f = request.FILES.get('image')
            files = [{
                'url': iu.image.url,
                'name': unicode(iu.uuid),
                "type": "image/png",
                'thumbnailUrl': iu.image.url,
                'size': f.size,
                'deleteUrl': '/image_delete/' + unicode(iu.uuid) + '/',
                'deleteType': "DELETE",
            }]
            data = {"files": files}
            response = JSONResponse(data, {}, response_mimetype(request))
            response['Content-Disposition'] = 'inline; filename=files.json'
            return response
示例#5
0
def user_settings(req):
    if not req.user.is_authenticated() or req.user.is_anonymous():
        return redirect("index")
    tpl = "website/settings.html"
    ctxt = dict()
    ctxt["change_pwd_form"] = PasswordChangeForm(req.user)
    loc = req.user.locutor
    if req.method == "POST":
        random_pic_name = "".join(
            [choice(string.ascii_letters) for i in xrange(32)])
        if 'img' in req.FILES.keys():
            req.FILES['img'].name = random_pic_name
        picform = ImageUploadForm(req.POST, req.FILES)
        if picform.is_valid():
            # TODO delete old file
            #             with open(settings.MEDIA_ROOT + 'pic/' + loc.pic.name, 'wb+') as destination:
            #                 for chunk in loc.pic.chunks():
            #                    destination.write(chunk)
            loc.pic.delete()
            loc.pic = picform.cleaned_data["img"]
            # File(random_pic_name, req.FILES['files[]'])
            loc.save()
            req.user.save()
        else:
            print picform.errors
    return render(req, tpl, ctxt)
示例#6
0
文件: views.py 项目: innlym/loginhere
def avatar(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES) 
        if form.is_valid():
            request.user.avatar = form.cleaned_data['image']   
            request.user.save()
    
    return HttpResponseRedirect("../profile/")
示例#7
0
    def _upload_file(self, image=False, show_filename=True):
        import os
        import Image
        if image:
            from forms import ImageUploadForm as Form
        else:
            from forms import FileUploadForm as Form
        from uliweb.utils.image import thumbnail_image, fix_filename
        from uliweb import json_dumps

        File = get_model('forumattachment')

        forum_id = request.GET.get('forum_id')
        slug = request.GET.get('slug')
        form = Form()
        suffix = date.now().strftime('_%Y_%m_%d')
        if request.method == 'GET':
            form.bind({'is_thumbnail': True})
            return {'form': form}
        else:
            flag = form.validate(request.values, request.files)
            if flag:
                f = form.data['filedata']
                _f = os.path.basename(f['filename'])
                #文件格式为forum/<forum_id>/<filename_yyyy_mm_dd>
                filename = fix_filename('forum/%s/%s' % (forum_id, _f), suffix)
                if image:
                    filename = functions.save_file(filename, f['file'])
                    if form.data['is_thumbnail']:
                        #process thumbnail
                        rfilename, thumbnail = thumbnail_image(
                            functions.get_filename(filename, filesystem=True),
                            filename,
                            settings.get_var('PARA/FORUM_THUMBNAIL_SIZE'))
                        _file = functions.get_href(thumbnail)
                    else:
                        _file = functions.get_href(filename)
                    name = functions.get_href(filename)
                else:
                    filename = functions.save_file(filename, f['file'])
                    name = form.data['title']
                    if not name:
                        name = _f
                    _file = functions.get_href(filename, alt=name)
                ff = File(slug=slug, file_name=filename, name=name)
                ff.save()
                name = json_dumps(name, unicode=True)
                if show_filename:
                    fargs = '||%s' % name[1:-1]
                else:
                    fargs = ''
                return '''<script type="text/javascript">
var url='%s%s';
setTimeout(function(){callback(url);},100);
</script>
''' % (_file, fargs)
            else:
                return {'form': form}
示例#8
0
文件: views.py 项目: datakungfu/plugs
    def _upload_file(self, image=False):
        import os
        import Image
        from uliweb.contrib.upload import get_url, save_file, get_filename

        if image:
            from forms import ImageUploadForm as Form
        else:
            from forms import FileUploadForm as Form
        from uliweb.utils.image import thumbnail_image, fix_filename

        File = get_model("forumattachment")

        forum_id = request.GET.get("forum_id")
        slug = request.GET.get("slug")
        form = Form()
        suffix = date.now().strftime("_%Y_%m_%d")
        if request.method == "GET":
            form.bind({"is_thumbnail": True})
            return {"form": form}
        else:
            flag = form.validate(request.values, request.files)
            if flag:
                f = form.data["filedata"]
                _f = os.path.basename(f["filename"])
                # 文件格式为forum/<forum_id>/<filename_yyyy_mm_dd>
                filename = fix_filename("forum/%s/%s" % (forum_id, _f), suffix)
                if image:
                    filename = save_file(filename, f["file"])
                    if form.data["is_thumbnail"]:
                        # process thumbnail
                        rfilename, thumbnail = thumbnail_image(
                            get_filename(filename, filesystem=True),
                            filename,
                            settings.get_var("PARA/FORUM_THUMBNAIL_SIZE"),
                        )
                        _file = get_url(thumbnail)
                    else:
                        _file = get_url(filename)
                    name = get_url(filename)
                else:
                    filename = save_file(filename, f["file"])
                    _file = get_url(filename)
                    name = form.data["title"]
                    if not name:
                        name = _f
                ff = File(slug=slug, file_name=filename, name=name)
                ff.save()
                return """<script type="text/javascript">
var url='%s||%s';
setTimeout(function(){callback(url);},100);
</script>
""" % (
                    _file,
                    name,
                )
            else:
                return {"form": form}
示例#9
0
def upload_pic(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            image = ImageModel(image=request.FILES['image'])
            image.save()
            return render(request, 'success.html')
    else:
        form = ImageUploadForm()
    return render(request, 'upload.html', {'form': form})
示例#10
0
def add_image(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
        else:
            response = HttpResponse()
            response.status_code = 400
            return response
    return HttpResponseRedirect(reverse('local_list'))
示例#11
0
def upload(request):
    if not request.POST:
        form = ImageUploadForm()
    else:
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            relative_url = settings.MEDIA_URL + settings.UPLOAD_DIR + str(form.cleaned_data['image'])
            return redirect(relative_url)
    return direct_to_template(request, "upload.html", {'form': form})
示例#12
0
文件: views.py 项目: qq40660/forum2
    def _upload_file(self, image=False, show_filename=True):
        import os
        import Image
        if image:
            from forms import ImageUploadForm as Form
        else:
            from forms import FileUploadForm as Form
        from uliweb.utils.image import thumbnail_image, fix_filename
        from uliweb import json_dumps
        
        File = get_model('forumattachment')
        
        forum_id = request.GET.get('forum_id')
        slug = request.GET.get('slug')
        form = Form()
        suffix = date.now().strftime('_%Y_%m_%d')
        if request.method == 'GET':
            form.bind({'is_thumbnail':True})
            return {'form':form}
        else:
            flag = form.validate(request.values, request.files)
            if flag:
                f = form.data['filedata']
                _f = os.path.basename(f['filename'])
                #文件格式为<forum_id>/<filename_yyyy_mm_dd>
                filename = fix_filename('%s/%s' % (forum_id, _f), suffix)
                if image:
                    filename = functions.save_file(filename, f['file'])
                    if form.data['is_thumbnail']:
                        #process thumbnail
                        rfilename, thumbnail = thumbnail_image(functions.get_filename(filename, filesystem=True), filename, settings.get_var('PARA/FORUM_THUMBNAIL_SIZE'))
                        _file = functions.get_href(thumbnail)
                    else:
                        _file = functions.get_href(filename)
                    name = functions.get_href(filename)
                else:
                    filename = functions.save_file(filename, f['file'])
                    name = form.data['title']
                    if not name:
                        name = _f
                    _file = functions.get_href(filename, alt=name)
                ff = File(slug=slug, file_name=filename, name=name)
                ff.save()
                name = json_dumps(name, unicode=True)
                if show_filename:
                    fargs = '||%s' % name[1:-1]
                else:
                    fargs = ''
                return '''<script type="text/javascript">
var url='%s%s';
setTimeout(function(){callback(url);},100);
</script>
''' % (_file, fargs)
            else:
                return {'form':form}
示例#13
0
def upload_image(request):
    """
    Upload image
    :param request: HTTP request
    :return: json data in python dict
    """
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return dict(filelink=form.get_media_url())
    return {}
示例#14
0
    def post(self, request, *args, **kwargs):
        post = request.POST
        oled_id = post.get('oled_id', '')
        image_form = ImageUploadForm(request.POST, request.FILES or None)
        if image_form.is_valid():
            oled = Oled.objects.get(oled_id=oled_id)
            oled.oledimage_set.create(
                image_image=request.FILES.get('file', ''),
                image_thumbnail=request.FILES.get('file', ''))
            return HttpResponse('Posted')

        print('fail')
        return HttpResponse('Failed')
示例#15
0
def upload_pic(request):
  
  c = {}
  c.update(csrf(request))  
  script_args['c'] = c
  
  if request.method == 'POST':
    form = ImageUploadForm(request.POST, request.FILES)
    if form.is_valid():
      m = ExampleModel()
      m.model_pic = form.cleaned_data['image']
      m.save()
      return HttpResponse('image upload success')
    
  return render_to_response("emc/upload_pic.html", c)    
示例#16
0
文件: views.py 项目: unlenin/otipl
def save(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            # get profile from user
            if not request.user.user_profile.all():
                profile = UserProfile()
                profile.user = request.user
                profile.save()

            m = request.user.user_profile.all()[0]
            m.photo = form.cleaned_data['image']
            m.save()
            return HttpResponse('image upload success')
    return HttpResponseForbidden('allowed only via POST')
def showScrapbookPage(request,userID):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
			user = User.objects.get(pk=userID)
			print userID
			m = Pictures(picture = request.FILES['picture'],date = timezone.now(), caption = "",user=user)
         	# m.model_pic = form.cleaned_data['image']
			m.save()
            #if form.user.is_valid():
            	#form.user(user=request.user) #check
			# form.save()
    scrapbook_gen = Pictures.objects
    url = Pictures.objects.filter(user=User.objects.get(pk=userID))
    #url = [x.picture.url.replace("fridge/static/", "") for x in Pictures.objects.all()]
    return render(request, 'scrapbook/scrapbook.html', {'scrapbook_gen':scrapbook_gen, 'url':url, 'form': ImageUploadForm(),'userID':userID})
示例#18
0
文件: views.py 项目: longnight/ajax
def comments(request):

    form = CommentForm(request.POST or None)

    img_form = ImageUploadForm()
    if request.method == "POST" and form.is_valid():
        comment = Comment(content=form.cleaned_data.get('content'))
        if form.cleaned_data.get('quote_id'):
            comment.quote_id = form.cleaned_data.get('quote_id')

        if request.is_ajax():
            print 'ajax coming~~!'
            print comment.id
            print comment.content
            comment.content += ' (from ajax!)'

        comment.save()
        print 'success!'
        return redirect('/comments/')

    comments = Comment.objects.order_by('-id').all()[:8]
    img_paths = ImagsPath.objects.order_by('-id').all()[:5]
    c = {
        'comments': comments,
        'form': form,
        'img_form': img_form,
        'img_paths': img_paths,
    }

    return render(request, 'comments.html', c)
示例#19
0
文件: views.py 项目: darxsys/PUS
def upload_pic(request):
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            user = request.user
            photo = Photo()
            photo.photo = form.cleaned_data['image']
            photo.public = form.cleaned_data['public']
            photo.name = form.cleaned_data['name']
            photo.owner = user.customuser
            photo.save()
            # print(photo.photo)
            return HttpResponseRedirect('/photos/success_upload/')
    elif request.method == 'GET':
        form = ImageUploadForm()
        return render(request, 'photos/upload.html', {'form': form})
    return render(request, 'photos/upload.html', {'form': form})
def upload():
    form = ImageUploadForm()
    if form.validate_on_submit():
        # save file
        safe_filename = secure_filename(form.image_file.data.filename)
        final_filename = f'{current_user.id}_{str(current_user.images_count + 1)}_{safe_filename}'
        upload_set.save(form.image_file.data, name=final_filename)

        # add image row in db
        image = Image()
        image.title = form.title.data
        image.filename = final_filename
        image.user_id = current_user.id
        db.session.add(image)
        db.session.commit()

        # update user uploaded images count
        current_user.images_count += 1

        # detect faces for current image and save data in db
        detector = FaceDetector(final_filename)
        result = detector.get_detections()
        data = result.get('data')
        if data:
            image_id = image.id
            detections_to_commit = []
            for item in data:
                detection = Detection()
                detection.topleft_x = item['x']
                detection.topleft_y = item['y']
                detection.width = item['width']
                detection.height = item['height']
                detection.image_id = image_id
                detections_to_commit.append(detection)

            if detections_to_commit:
                db.session.add_all(detections_to_commit)
                db.session.commit()

        flash(f'File {safe_filename} has been uploaded successfully!', 'success')
        return redirect(url_for('home'))
    return render_template('upload.html', form=form, title='Image upload page')
示例#21
0
def upload_image(request):
    """
    Handles image uploads and assigns them to the correct user. Resizes the image before uploading.

    The uploaded image's URL is in the HTTP header (Location)
    """
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            img = Image()
            img.user = request.user
            img.note_id = form.cleaned_data['note']
            img.image = form.cleaned_data['image']
            img.save()

            # Build a response
            response = HttpResponse(status=201)
            response['Location'] = img.image.url.replace(settings.AWS_MEDIA_URL,settings.MEDIA_URL,1)
            return response
        else:
            return HttpResponse(status=400)
    return HttpResponseForbidden()
示例#22
0
def upload_image(request):
    """
    Handles image uploads and assigns them to the correct user. Resizes the image before uploading.

    The uploaded image's URL is in the HTTP header (Location)
    """
    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            img = Image()
            img.user = request.user
            img.note_id = form.cleaned_data['note']
            img.image = form.cleaned_data['image']
            img.save()

            # Build a response
            response = HttpResponse(status=201)
            response['Location'] = img.image.url.replace(
                settings.AWS_MEDIA_URL, settings.MEDIA_URL, 1)
            return response
        else:
            return HttpResponse(status=400)
    return HttpResponseForbidden()
示例#23
0
文件: views.py 项目: datea/datea-api
def save_image(request):
    """
    Save DateaImage instance for specified object FK or M2M-Field
    post parameters must include:
        image:           image file input
        order:           the order of the image (optional)
    """
    key_auth = ApiKeyAuthentication()

    if not key_auth.is_authenticated(request):
        return HttpResponse("<h1>Login required</h1>")

    form = ImageUploadForm(request.POST, request.FILES)

    if form.is_valid():

        image_data = request.FILES['image']
        image_instance = Image(image=image_data, user=request.user)
        if 'order' in form.cleaned_data:
            image_instance.order = form.cleaned_data['order']
        image_instance.save()

        # create image resource
        ir = ImageResource()
        im_bundle = ir.build_bundle(obj=image_instance)
        im_bundle = ir.full_dehydrate(im_bundle)

        data = {'ok': True, 'message':'ok', 'resource': im_bundle.data}
        status=201
    else:
        data = {'ok': False, 'message': form.errors}
        status = 400

    resp = JsonResponse(data)
    resp.status_code = status
    return resp
示例#24
0
def save_image(request):
    """
    Save DateaImage instance for specified object FK or M2M-Field
    post parameters must include:
        object_type:     name of the model class
        object_id:       pk of the instance
        object_field:    fk or m2m fieldname
        image:           image file input 
        order:           the order of the image (optional)
    """
    
    if not request.user.is_authenticated:
        return HttpResponse("<h1>Login required</h1>")
    
    form = ImageUploadForm(request.POST, request.FILES)

    if form.is_valid():
        
        # ADD DATEA IMAGE INSTANCE To EXISTING OBJECT
        if form.cleaned_data['object_id'] and form.cleaned_data['object_type'] and form.cleaned_data['object_field']:
        
            # get model through content type, object instance, field class
            model = ContentType.objects.get(model=form.cleaned_data['object_type'].lower())
            object = model.get_object_for_this_type(pk=form.cleaned_data['object_id'])
            
            # Only access image if object is owned by user or user.
            # TODO: implement better permissions with something like django-guardian
            if object.user == request.user or request.user.is_staff:
                field_name = form.cleaned_data['object_field']
                field = object._meta.get_field(field_name)
                image_data = form.cleaned_data['image']
                
                # field is foreign key 
                if type(field) in [ForeignKey, OneToOneField]:
                    image_instance = getattr(object, field_name)
                    
                    # create new DateaImage and save to objects foreignkey field 
                    if not image_instance:
                        image_instance = DateaImage(image=image_data, user=request.user)
                        image_instance.save()
                        setattr(object, field_name, image_instance)
                        object.save()
                    
                    # update existing image 
                    else:
                        image_instance.image = image_data
                        image_instance.save()
                
                elif type(field) == ManyToManyField:
                    m2m = getattr(object, field_name)
                    
                    #if image_order specified, check if image exists
                    if 'image_order' in request.POST and request.POST['image_order']:
                        order = request.POST['image_order']
                        # update existing image
                        try:
                            image_instance = m2m.get(order=order)
                            image_instance.image = image_data
                            image_instance.save()
                        # create new with specified order
                        except:
                            image_instance = DateaImage(image=image_data, user=request.user, order=order)
                            image_instance.save()
                            m2m.add(image_instance)
                    
                    # create new image with corresponding order (last + 1)
                    else:
                        if m2m.count() == 0:
                            order = 0
                        else:
                            order = m2m.order_by('order')[0].order + 1
                        image_instance = DateaImage(image=image_data, user=request.user, order=order)
                        image_instance.save()
                        m2m.add(image_instance)    
                
                # create image resource
                ir = ImageResource()
                im_bundle = ir.build_bundle(obj=image_instance)
                im_bundle = ir.full_dehydrate(im_bundle)
                
                data = {'ok': True, 'message':'Everything\'s fine', 'resource': im_bundle.data }
                if form.cleaned_data['thumb_preset']:
                    try:
                        data['resource']['thumb'] = image_instance.get_thumb(form.cleaned_data['thumb_preset'])
                    except:
                        pass
                               
                data = simplejson.dumps(data)
            else:
                data = simplejson.dumps({'ok': False, 'message': 'Permission denied'})
        
        # JUST ADD IMAGE WITHOUT REFERENCING IT TO AN OBJECT
        else:
            image_data = form.cleaned_data['image']
            image_instance = DateaImage(image=image_data, user=request.user)
            if 'order' in form.cleaned_data:
                image_instance.order = form.cleaned_data['order']
            image_instance.save()
            
            # create image resource
            ir = ImageResource()
            im_bundle = ir.build_bundle(obj=image_instance)
            im_bundle = ir.full_dehydrate(im_bundle)
            
            data = {'ok': True, 'message':'Everything\'s fine', 'resource': im_bundle.data}
            if form.cleaned_data['thumb_preset']:
                    try:
                        data['resource']['thumb'] = image_instance.image[form.cleaned_data['thumb_preset']].url
                    except:
                        pass
            
            data = simplejson.dumps(data)
             
    else:
        data = simplejson.dumps({'ok': False, 'message': form.errors})
    
    context = Context({'data': data})
    tpl = Template('<textarea data-type="application/json">{{ data|safe }}</textarea>')
       
    return HttpResponse(tpl.render(context))
示例#25
0
文件: views.py 项目: unlenin/otipl
def edit(request):
    #create user profile
    status = ''
    if request.method == 'POST':
        if 'email' in request.POST:
            email = request.POST['email']
            username = request.POST['username']
            password = request.POST['password']
            lastname = request.POST['lastname']
            firstname = request.POST['firstname']
            middlename = request.POST['middlename']
            status = request.POST.get('status','')
            education = request.POST.get('education','')
            year = request.POST.get('year','1')
            course = request.POST.get('course','1')
            user = User.objects.create_user(username, email, password)
            user.first_name = firstname
            user.last_name = lastname
            user.save()
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
            profile = UserProfile()
            profile.user = user
            profile.middle_name = middlename
            profile.status = status
            profile.education = education
            profile.grade = course
            profile.year = year
            profile.save()
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            # get profile from user

            if not request.user.user_profile.all():
                profile = UserProfile()
                profile.user = request.user
                profile.save()

            m = request.user.user_profile.all()[0]
            status = m.status
            m.photo = form.cleaned_data['image']
            m.save()
        if 'about' in request.POST or 'teaching'  in request.POST or 'science' in request.POST or 'publications' in request.POST:
            if not request.user.user_profile.all():
                profile = UserProfile()
                profile.user = request.user
                profile.save()

            m = request.user.user_profile.all()[0]
            if 'about' in request.POST:
                m.about = request.POST.get('about','')
            if 'teaching' in request.POST:
                m.teaching = request.POST.get('teaching','')
            if 'science' in request.POST:
                m.science = request.POST.get('science','')
            if 'publications' in request.POST:
                m.publications = request.POST.get('publications','')
            m.save()

        context = get_context(request)
        context['type'] = status

        return render(request, 'main/edit.html', context)
    elif request.user.is_authenticated():
        context = get_context(request)
        if not request.user.user_profile.all():
            profile = UserProfile()
            profile.user = request.user
            profile.save()
        context['type'] = request.user.user_profile.all()[0].status

        return render(request, 'main/edit.html', context)       

    return HttpResponseForbidden('allowed only registered users or via POST')
示例#26
0
def upload_pic(request):

    if request.method == 'POST':
        form = ImageUploadForm(request.POST, request.FILES)
        if form.is_valid():
            # os.remove(file) for file in os.listdir('path/to/directory') if file.endswith('.png')
            for file in os.listdir(os.path.join(BASE_DIR, 'media', 'img')):
                if (file.endswith('.jpg')):
                    os.remove(os.path.join(BASE_DIR, 'media', 'img', file))
            for file in os.listdir(os.path.join(BASE_DIR, 'static', 'img')):
                if (file.endswith('.jpg')):
                    os.remove(os.path.join(BASE_DIR, 'static', 'img', file))
            m = ExampleModel()
            m.model_pic = form.cleaned_data['image']
            m.save()
            for file in os.listdir(os.path.join(BASE_DIR, 'media', 'img')):
                if (file.endswith('.jpg')):
                    shutil.move(
                        os.path.join(BASE_DIR, 'media', 'img', file),
                        os.path.join(BASE_DIR, 'media', 'img', 'main.jpg'))
                    shutil.copy(
                        os.path.join(BASE_DIR, 'media', 'img', 'main.jpg'),
                        os.path.join(BASE_DIR, 'static', 'img', 'main.jpg'))
            pathForImage = os.path.join(BASE_DIR, 'static', 'img', 'main.jpg')
            mainImage = cv2.imread(pathForImage)
            p = subprocess.Popen(
                '/usr/local/src/openalpr/src/build/alpr -c kz -p kz -j ' +
                pathForImage,
                stdout=subprocess.PIPE,
                shell=True)
            (output, err) = p.communicate()
            p_status = p.wait()
            main_out = output.split('\n')[0]
            data = (json.loads(main_out))['results']
            # print(data)
            if (len(data) == 0):
                data = {'plateNumber': 'НОМЕР БЫЛ НЕ НАЙДЕН'}
                return render(request, 'second.html', data)
            else:
                coordinates = data[0]['coordinates']
                top_left = coordinates[1]
                bottom_right = coordinates[3]
                y1 = top_left['y']
                x1 = top_left['x']

                y2 = bottom_right['y']
                x2 = bottom_right['x']

                cv2.rectangle(mainImage, (x1, int(y1)), (x2, int(y2)),
                              (0, 255, 0), 1)
                cv2.imwrite(pathForImage, mainImage)
                plates = data[0]['candidates']
                plate_number = (data[0]['candidates'][0]['plate'])

                best_predicted = data[0]['candidates'][0]['plate']
                best_predicted_by_pattern = []
                for plate in plates:
                    if (plate['matches_template'] == 1):
                        best_predicted_by_pattern.append(plate['plate'])
                if (len(best_predicted_by_pattern) != 0):
                    best_predicted = best_predicted_by_pattern[0]
                data = {'plateNumber': best_predicted}
                return render(request, 'second.html', data)
    return HttpResponseForbidden('allowed only via POST')