python - How to store an image as a Bytes field in cassandra database using cql engine? -
i want store website images in cassandra database! must read , store bytes of image. have nice code me? i'm using python2.7, django framework , cql-engine!
this code:
1- model:
from cqlengine import columns cqlengine.models import model class userimage(model): email = columns.text(primary_key=true) image=columns.bytes(required=false)
2- form:
class userimage(forms.form): image=forms.imagefield()
3- view:
from mainapp.models import userimage userimagemodel mainapp.forms import usersforms django.http import httpresponse cqlengine import connection pil import image def uploadimage(request): if request.method == 'post': form = usersforms.userimage(request.post, request.files) if form.is_valid(): try: image_data=image.open(request.files['image']) except ioerror: return httpresponse("cannot upload %s"% request.files['image'].name) connection.setup(['127.0.0.1:9160']) userimagemodel.create(email='ebrahimi.omid69@gmail.com', image=image_data) return httpresponse('stored successfully!') else: form= usersforms.userimage() return render_to_response('users/uploadimage.html', {'form': form}, context_instance=requestcontext(request))
my template:
{% block content %} <form enctype="multipart/form-data" method="post" action=""> {% csrf_token %} {{ form.as_p }} <button type="submit">upload</button> </form> {% endblock %}
my error in rendered template:
attributeerror @ /uploadimage encode request method: post request url: http://127.0.0.1:8000/uploadimage django version: 1.5.1 exception type: attributeerror exception value: encode
what idea? please guide me...
if @ exception message getting, says attributeerror: encode. telling somewhere in code path, looking attribute (or method) called "encode" on object , not finding it.
i suspect not passing right duck-typed object cqlengine userimage.image. know how speak pil image objects? doubt it. bet cqlengine looking typical python string method .encode (http://docs.python.org/2/library/stdtypes.html#str.encode). instead of passing pil image, try passing raw bytes receive form posting.
Comments
Post a Comment