Ich möchte meine Website Bilder in Cassandra-Datenbank speichern! Ich muss Bildbytes lesen und speichern. Hast du einen schönen Code für mich? Ich verwende python2.7, django framework und cql-engine!Wie speichert man ein Bild als Bytes Feld in Cassandra Datenbank mit CQL-Engine?
Dies ist mein Code:
1- My Model:
from cqlengine import columns
from cqlengine.models import Model
class UserImage(Model):
Email = columns.Text(primary_key=True)
image=columns.Bytes(required=False)
2- Meine Form:
class UserImage(forms.Form):
image=forms.ImageField()
3- Meine Ansicht:
from MainAPP.models import UserImage as UserImageModel
from MainAPP.forms import UsersForms
from django.http import HttpResponse
from cqlengine import connection
from 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='[email protected]', image=image_data)
return HttpResponse('Stored Successfully!')
else:
form= UsersForms.UserImage()
return render_to_response('Users/uploadImage.html', {'form': form}, context_instance=RequestContext(request))
Meine Vorlage:
{% block content %}
<form enctype="multipart/form-data" method="post" action="">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Upload</button>
</form>
{% endblock %}
Mein Fehler in Rendered Vorlage:
AttributeError at /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
Was ist Ihre Idee? Bitte führen Sie mich ...
ich persönlich versuchen, binäre Dateien zu vermeiden Speicher (insbesondere von Mediendateien wie Bilder, Audio und Video) in der Datenbank. Normalerweise speichere ich die URL auf das Bild in der Datenbank, aber die Bilddaten werden irgendwo wie Amazon S3 mit Cloudfront CDN gespeichert, um die Downloads für Benutzer zu beschleunigen. Es gibt bereits ein Django Addon für dieses http://django-storages.readthedocs.org/en/latest/ – Jared