Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在第二页显示Django输入数据_Python_Django - Fatal编程技术网

Python 如何在第二页显示Django输入数据

Python 如何在第二页显示Django输入数据,python,django,Python,Django,我有一个简单的Django视图,它显示用户输入的文本。现在这个文本显示在同一个页面上,而不改变地址(scraping.html),但我想在新页面(scrapingscore.html)上显示它。我怎么能做到呢?我读到了关于HttpResponseRedirect的文章,并试着这么做,但没有成功,我感到困惑 views.py class HomeView(TemplateView): template_name = 'scraping.html' def get(self, re

我有一个简单的Django视图,它显示用户输入的文本。现在这个文本显示在同一个页面上,而不改变地址(scraping.html),但我想在新页面(scrapingscore.html)上显示它。我怎么能做到呢?我读到了关于HttpResponseRedirect的文章,并试着这么做,但没有成功,我感到困惑

views.py

class HomeView(TemplateView):
    template_name = 'scraping.html'

    def get(self, request):
        form = HomeForm()
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = HomeForm(request.POST)
        if form.is_valid():
                text = form.cleaned_data.get('post')
                form = HomeForm()

        args = {'form': form, 'text': text}
        return render(request, self.template_name, args)
class HomeView(TemplateView):
    template_name = 'scraping.html'

    def get(self, request):
        form = HomeForm()
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = HomeForm(request.POST)
        if form.is_valid():
                text = form.cleaned_data.get('post')
                form = HomeForm()
        c = {text: 'bar'}
        return render(request, 'scrapingscore.html', context = c)
forms.py

class HomeForm(forms.Form):
    search = forms.CharField(label='search', max_length=100)
scraping.html

{% block content %}
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Upload text</button>
    </form>
    {{ text }}
{% endblock %}
views.py

class HomeView(TemplateView):
    template_name = 'scraping.html'

    def get(self, request):
        form = HomeForm()
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = HomeForm(request.POST)
        if form.is_valid():
                text = form.cleaned_data.get('post')
                form = HomeForm()

        args = {'form': form, 'text': text}
        return render(request, self.template_name, args)
class HomeView(TemplateView):
    template_name = 'scraping.html'

    def get(self, request):
        form = HomeForm()
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = HomeForm(request.POST)
        if form.is_valid():
                text = form.cleaned_data.get('post')
                form = HomeForm()
        c = {text: 'bar'}
        return render(request, 'scrapingscore.html', context = c)

我在scrapingscore.html中添加了“{text}”,如果您想在新页面上显示该数据,请执行以下操作

  • 在URL.conf中定义一个URL,该URL将重定向到中的给定方法 views.py

  • 在方法中,您需要创建一个上下文,它将保存 要呈现到新页面的数据

  • 最后,只需调用render方法即可显示所需的HTML页面 希望使用希望作为上下文传递的数据(请参阅)

  • Views.py方法应该如下所示

    from django.shortcuts import render
    
    def my_view(request):
        # View code here...
        #set your data here
        c = {key_data: 'bar'}
        return render(request, 'myapp/index.html', context = c)
    
    现在在
    scrapingscore.html
    上,将数据呈现为


    {{key_data}}

    非常感谢您的回复,我阅读了您提供的说明和链接,我尝试自己做,但网站没有重定向到“scrapingscore”-我编辑了第一篇帖子,并在底部添加了url.py和views.py现在的样子。我不确定URL.py,我在两个网站上都添加了相同的视图,但我应该在URL中这样做吗?您似乎在使用类基本视图,我建议使用函数基本视图,因为这是我的首选。看,这个问题解决了吗?如果是,请接受答案,以表明问题已经解决。