首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >上传文件,然后显示内容,django

上传文件,然后显示内容,django
EN

Stack Overflow用户
提问于 2019-05-23 05:44:44
回答 1查看 39关注 0票数 1

在开始之前,我会注意到我是python的初学者。

我正在尝试建立一个非常简单的应用程序,其中用户上传一个ics文件,提交后,文件被解析,应用程序以易读的格式显示内容。

我正在尝试使用FileSystemStorage(),但似乎无法正确设置它。

这是我的views.py和模板的样子。

代码语言:javascript
复制
# views.py

from django.core.files.storage import FileSystemStorage
from django.views.decorators.clickjacking import xframe_options_exempt
from icalendar import Calendar, Event
from pytz import UTC


@xframe_options_exempt
def index(request):
    if request.method == 'POST' and request.FILES['icsfile']:
        myfile = request.FILES['icsfile']
        fs = FileSystemStorage()
        filename = fs.save(icsfile.name, icsfile)
        uploaded_file_url = fs.url(filename)
        g = open(uploaded_file_url, 'rb')
        gcal = Calendar.from_ical(g.read())
        for component in gcal.walk():
            if component.name == "VEVENT":
                summary = component.get('summary')
                description = component.get('description')
                start_time = component.get('dtstart')
                end_time = component.get('dtend')
        g.close()

        return render(request, 'ics_parser/index.html', {
            'uploaded_file_url': uploaded_file_url,
            'summary': summary,
            'description': description,
            'dtstart': dtstart,
            'dtend': dtend,
        })
    return render(request, 'ics_parser/index.html', {})


# index.html

 <div class="ics-formatter"></div>
    <div class="row">
        <div class="col-sm-6">
            <form method="post" enctype="multipart/form-data">
                {% csrf_token %}
                <input type="file" name="icsfile">
                <button type="submit">Upload</button>
            </form>
        </div>
        <div class="col-sm-6">
            {% if uploaded_file_url %}
            <p>{{description}}</p>
            {% endif %}
        </div>
    </div>

这是我得到的错误:

异常类型: NameError异常取值:

未定义名称'icsfile‘

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 06:19:40

您将该文件定义为myfile

尝试替换

代码语言:javascript
复制
filename = fs.save(icsfile.name, icsfile)

使用

代码语言:javascript
复制
filename = fs.save(myfile.name, icsfile)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56265434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档