python重定向作用_Python重定向不起作用

你有两个问题:你总是在开头写一个Content-Type头,加上额外的换行符。您现在已完成所有标题,无法再添加更多。在

当你正在重定向时,只写这些标题。

Location头仅用于重定向,即一个状态为30x的HTTP响应。您需要添加一个Status:头,以向web服务器发出信号,以非200状态响应。

调整代码以解决这些问题:#!/usr/bin/python

import cgitb

cgitb.enable()

import MySQLdb, cgi, os, sys

db = MySQLdb.connect(host="localhost", user="root", passwd="", db="test")

form = cgi.FieldStorage()

name = form.getvalue('temp')

passwd = form.getvalue('temp2')

with db as query:

query.execute("select * from cred where uname=%s and %s", (name, passwd))

result = query.fetchone()

if result is None:

# no such user, redirect

print 'Status: 302 Found'

print 'Location: http://localhost:8000/'

print

else:

print 'Content-type: text/html'

print

print '

Hello {}'.format(name)

请注意,我稍微修改了代码以使用一些最佳实践:从不使用字符串插值将用户信息放入SQL查询中。那样的话,SQL注入攻击会让你大吃一惊。使用SQL参数让数据库驱动程序为您转义这些值。

您可以将连接用作上下文管理器来自动提交。

用于生成HTML格式的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值