首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python金字塔-使用会话将表单数据传递到另一个页面。

Python金字塔-使用会话将表单数据传递到另一个页面。
EN

Stack Overflow用户
提问于 2017-11-13 01:37:37
回答 1查看 1.2K关注 0票数 0

我使用Python金字塔和Jinja2模板。我希望将表单数据保存到会话中,并在另一个HTML页面中检索它。为了传递数据,我应该如何更改?我只知道如何像这样将Views.py中的I键存储到会话中,但这不是request.session['postal'] = 01934中的数据。如果我使用print (session['postal']),这只会显示在命令提示符中,而不会显示HTML页面。有人能帮我吗?我是个新手。

在我的Views.py中添加/更改什么?

我的HTML: Delivery.jinja2

代码语言:javascript
复制
<form class="form-horizontal" method="POST">   
<div class="form-group">
    <label class="control-label col-md-2" for="postal">Postal Code:</label>
        <input type="text" class="form-control" id="postal" placeholder="Enter Postal Code" name="postal" />
</div>
<div class="form-group">
    <label class="control-label col-md-2" for="address">Detailed Address:</label>
        <textarea class="form-control" rows="3" id="address" placeholder="Enter Address" name="address"></textarea>
</div>
<div class="form-group">
    <label class="control-label col-md-2" for="unit">Unit No #:</label>
        <input type="text" class="form-control" id="unit" placeholder="Enter Unit No" name="unit" />
</div>
<button type="submit" class="btn btn-default" name="submit">Submit</button>
</form>

Views.py

代码语言:javascript
复制
@view_config(route_name='deliveryLink', renderer='templates/deliveryLink.jinja2')
def deliveryLink(request):
    print("YAY for gift delivery via Link")

if 'submit_deliverylink' in request.POST:
    print("request.POST: ", request.POST)

    myform = request.POST

    for m in myform:
        print("key: ", m, " value: ", myform[m])

    session = request.session

    session['postal'] = ?
    session['address'] = ?
    session['unit'] = ?

    data = "??"

    data_array = data.split(",")
    session['data'] = data_array

    session['delivery'] = str(data_array)

    print (session['delivery'])

    return HTTPFound(location='http://localhost:5555/confirmation')
return {}

@view_config(route_name='confirmation', renderer='templates/confirmation.jinja2')
def confirmation(request):
    print("YAY for confirmation")

        for a in request.POST:
            request.session[a] = request.POST[a]

    return {}

我希望以前输入的数据显示在这个确认页面上: Confirmation.jinja2

代码语言:javascript
复制
<form class="form-horizontal" method="POST">   
    <div class="form-group">
        <label class="control-label col-md-2" for="postal">Postal Code:</label>
            <input type="text" class="form-control" id="postal"  name="postal" />
    </div>
    <div class="form-group">
        <label class="control-label col-md-2" for="address">Detailed Address:</label>
            <textarea class="form-control" rows="3" id="address" name="address"></textarea>
    </div>
    <div class="form-group">
        <label class="control-label col-md-2" for="unit">Unit No #:</label>
            <input type="text" class="form-control" id="unit" name="unit" />
    </div>
    </form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-13 01:47:43

我认为,您可以将帖子从初始表单传递到确认页面的模板,而不需要会话。

如果您需要会话,可以从模板调用它。

<input type="text" class="form-control" id="postal" name="postal" value="{{session['postal']}}" />

代码语言:javascript
复制
# after form submitted, it sends post request, just check if it exist
if request.POST:
    print("request.POST: ", request.POST)

    myform = request.POST
    # you need iterate over keys for this case
    for m in myform.keys():
        print("key: ", m, " value: ", myform[m])

    session = request.session
    # you can access request.POST directly or use your variable myfrom 
    # use myform.get('postal','') to get value by key 
    session['postal'] = myform.get('postal','')
    session['address'] = myform.get('postal','')
    session['unit'] = myform.get('unit','')

    data = "??"

    data_array = data.split(",")
    session['data'] = data_array

    session['delivery'] = str(data_array)

    print (session['delivery'])

    return HTTPFound(location='http://localhost:5555/confirmation')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47255958

复制
相关文章

相似问题

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