我正在使用烧瓶.我处于这样一种情况,我需要将一个post请求重定向到另一个url,保留请求方法,即"POST"方法.当我将"GET"请求重定向到另一个接受"GET"请求方法的网址时没问题.这是我正在尝试上面的示例代码..
@app.route('/start',methods=['POST'])
def start():
flask.redirect(flask.url_for('operation'))
@app.route('/operation',methods=['POST'])
def operation():
return "My Response"
Run Code Online (Sandbox Code Playgroud)
我想对"/ start"url发出"POST"请求,内部也向"/ operation"url发出"POST"请求.如果我修改代码,就像这样,
@app.route('/operation',methods=['GET'])
def operation():
return "My Response"
Run Code Online (Sandbox Code Playgroud)
代码适用于"GET"请求.但我也希望能够发出POST请求.
Flask提供了一种url_for
功能,可根据URL模式为处理程序生成URL.但这意味着处理程序函数必须在整个应用程序中具有唯一的名称.那是对的吗?
例
模块A有一个处理程序index
:
@app.route('/')
def index(): pass
Run Code Online (Sandbox Code Playgroud)
模块B有另一个处理程序index
:
@app.route('/anotherindex')
def index(): pass
Run Code Online (Sandbox Code Playgroud)
如何区分index
构建URL时调用的处理程序?
url_for('index')
Run Code Online (Sandbox Code Playgroud) 我正在尝试维护/更新/重写/修复一些看起来有点像这样的Python:
variable = """My name is %s and it has been %s since I was born.
My parents decided to call me %s because they thought %s was a nice name.
%s is the same as %s.""" % (name, name, name, name, name, name)
Run Code Online (Sandbox Code Playgroud)
整个脚本都有一些看起来像这样的片段,我想知道是否有一种更简单(更Pythonic?)的方式来编写这段代码.我发现其中一个实例替换了相同的变量大约30次,而且感觉很难看.
围绕(在我看来)丑陋的唯一方法将它分成许多小点?
variable = """My name is %s and it has been %s since I was born.""" % (name, name)
variable += """My parents decided to call me %s because they thought %s was a nice …
Run Code Online (Sandbox Code Playgroud) columnNames = {}
和columnNames = []
python有什么区别?
我怎么能迭代每一个?使用 {% for value in columnNames %}
ORfor idx_o, val_o in enumerate(columnNames):
我已经看过很多关于如何在appengine中实现唯一约束的文章和问题,但实际上我没有找到关于为什么不存在此功能的任何解释.
如果appengine开发人员认为最好不要实现这样的功能,我相信他们有充分的理由,但我有兴趣理解为什么他们这么做.
这个决定是否受到业绩问题的影响?为什么?
任何有关这方面的详细解释将不胜感激.
我正在寻找一种方法来运行python解释器与我的应用程序(也用python编写),因此它不需要在机器上安装python.
我搜索了谷歌,发现了一堆关于如何在用各种语言编写的应用程序中嵌入python解释器的结果,但没有用于python本身的应用程序...我不需要"隐藏"我的代码或制作二进制文件cx_freeze确实如此,我只是不希望我的用户必须安装python来使用我的应用程序,这就是全部.
谢谢.
我正在使用Python/Flask重新创建服务,并且遇到了现有客户端进行身份验证的问题.出于兼容性原因,我必须匹配现有的客户端方案.
现有客户端使用用户名,密码和base64对其进行编码.这不是HTTP基本身份验证,尽管听起来很相似.下面是一些创建此登录请求的示例代码.
credentials = {
'username': 'test@example.com',
'password': 'password'
}
data = b64encode(urlencode(credentials))
request = urllib2.Request(loginURL)
request.add_data(data)
# request.add_header('Content-Type', 'application/gooblygop')
# 'application/x-www-form-urlencoded' seems to be a default Content-Type
login = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
在服务器端,我接受POST数据并对其进行解码,以便再次获取用户名和密码信息.
flask server:
@app.route('/login', methods=['POST'])
def login():
error = None
if request.method == 'POST':
# post data: cGFzc3dvcmQ9ZGVmYXVsdCZlbWFpbD10ZXN0JTQwZXhhbXBsZS5jb20=
data = b64decode(request.data)
# decoded data: password=default&email=test%40example.com
return('ok')
Run Code Online (Sandbox Code Playgroud)
问题是内容类型.如果我在客户端(application/gooblygop)中指定了未知的Content-Type,Flask会将POST数据暴露给request.data,我可以解码base64字符串.如果我离开的Content-Type为默认值(应用程序/ x-WWW的形式,进行了urlencoded),原始数据不会暴露request.data,我不知道如何获取base64编码字符串,并利用它.
现有的客户端软件几乎默认为x-www-form-urlencoded,但我不能完全依赖于这种情况.
本质上,无论客户端程序指出什么Content-Type,我都需要一个可靠的服务器端方法来访问该编码字符串.
其他说明:我是Python的新手,来自PHP背景.所以我对建议很开放.此外,该项目主要供个人使用.
我想创建或找到一个用Python编写的开源Web爬虫(spider/bot).它必须找到并跟踪链接,收集元标记和元描述,网页标题和网页的网址,并将所有数据放入MySQL数据库.
有谁知道任何可以帮助我的开源脚本?此外,如果有人能给我一些关于我应该做什么的指示,那么他们非常欢迎.
假设有一个链接“http://www.someHTMLPageWithTwoForms.com”,它基本上是一个具有两种表单(比如表单 1 和表单 2)的 HTML 页面。我有一个这样的代码......
import httplib2
from BeautifulSoup import BeautifulSoup, SoupStrainer
h = httplib2.Http('.cache')
response, content = h.request('http://www.someHTMLPageWithTwoForms.com')
for field in BeautifulSoup(content, parseOnlyThese=SoupStrainer('input')):
if field.has_key('name'):
print field['name']
Run Code Online (Sandbox Code Playgroud)
这将返回属于我的 HTML 页面的 Form 1 和 Form 2 的所有字段名称。有什么方法可以让我只获得属于特定表单的字段名称(仅说表单 2)?
我有一个virtualenv项目,它使用python2.6,但现在我想使用python2.7.有没有办法做到这一点,而无需备份我的项目文件,为正确的python版本重新创建virtualenv,然后将我的文件复制回virtualenv?
这似乎不是一个手工完成的大任务,但能够自动化这对于轻松测试一个项目对许多python版本仍然是非常有用的,同时仍然在virtualenv.
python ×9
flask ×3
base64 ×1
content-type ×1
embedding ×1
interpreter ×1
mysql ×1
parsing ×1
redirect ×1
sql ×1
syntax ×1
url ×1
url-routing ×1
virtualenv ×1
web-crawler ×1
web-scraping ×1
wsgi ×1