代码之家  ›  专栏  ›  技术社区  ›  lalit bhadouria

如何使用django framework发送图像文件而不保存在数据库中

  •  0
  • lalit bhadouria  · 技术社区  · 8 年前

    我是Django的新手,我被Django的观点困住了。py am表单中的两个字段。py 1st CharField 2nd ImageField我的CharField已成功渲染,但ImageField未渲染如何解决此问题我想用tweet发送图像文件,而不保存在数据库中请帮助我解决此问题谢谢

    我的文件在这里-

    形式。py公司

    from django import forms
    
    class HomeForm(forms.Form):
      tweet = forms.CharField()
      img = forms.ImageField(label='Select a Image file',)
    

    意见。py公司

    from django.http import HttpResponseRedirect
    from django.shortcuts import render
    from .forms import *
    from django.views.generic import TemplateView
    
    
    class Texting(TemplateView):        
      Template_name =  'app_temp/xyz.html'
    
      def get(self, request):
        form = HomeForm()
        return render(request, self.Template_name, {'form': form})
    
      def post(self, request):
        access_token = 'XYZ'
        access_token_secret = 'PQR'
        consumer_key = 'LMN'
        consumer_secret = 'ABC'
        api = TwitterAPI(consumer_key, consumer_secret , access_token , access_token_secret )
        form = HomeForm(request.POST , request.FILES)
        if form.is_valid():
            text = form.cleaned_data['tweet']
            img = form.request.FILES['img'] 
    
            r = api.request('statuses/update_with_media', {'status':text}, {'media[]':img})
        return render(request,'app_temp/new_page.html')
    

    html

    {% extends 'login_base.html'%}
    
    {% block content %}
    
    <div class="container">
       <form method="POST">
             {% csrf_token %}
             {{ form.as_p }}
             <button type="submit" class="btn btn-primary">Tweet</button>
       </form>
       <h1>{{img}}</h1>
        <h1>{{text}}</h1>
     </div>
    {% endblock  %}
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Jonas    8 年前

    statuses/update_with_media 已弃用。此API调用已被两步过程所取代。首先,使用上载图像 media/upload . 其次,使用媒体ID发布您的推文 statuses/update . 您可以在以下位置找到完整的示例: https://github.com/geduldig/TwitterAPI/blob/master/examples/update_media.py .

    # STEP 1 - upload image
    file = open(IMAGE_PATH, 'rb')
    data = file.read()
    r = api.request('media/upload', None, {'media': data})
    print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE')
    
    # STEP 2 - post tweet with a reference to uploaded image
    if r.status_code == 200:
        media_id = r.json()['media_id']
        r = api.request(
            'statuses/update', {'status': TWEET_TEXT, 'media_ids': media_id})
        print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE')
    
        2
  •  0
  •   lalit bhadouria    8 年前

    形式。py公司

    from django import forms
    from app.models import *
    
    class HomeForm(forms.Form , forms.ModelForm):
      tweet = forms.CharField(max_length = 280 ,widget = forms.Textarea)
      image = forms.ImageField(label='Select a Image file',)
    

    意见。py公司

    from django.shortcuts import render
    from django.views.generic import TemplateView
    from TwitterAPI import *
    from app.forms import *
    class Texting(TemplateView):        
       def post(self, request):
          form = HomeForm(request.POST,request.FILES)
          if form.is_valid():
            text = form.cleaned_data['tweet']
            image = form.cleaned_data['image']
    
    推荐文章