作为我在Python上变得更好的一部分,我现在正试图登录我经常访问的网站,给自己发一条私信,然后退出.到目前为止,我已设法登录(使用urllib,cookiejar和urllib2).但是,我无法弄清楚如何填写所需的表格来给自己发送信息.
表单位于/messages.php?action=send.要发送的消息需要填写三件事:名称为name,title和message的三个文本字段.此外,还有一个提交按钮(名为"提交").
我如何填写此表并发送?
我有一个包含8个框架的Ttk Notebook小部件 - 所以,8个标签.每个框架都包含一个Text小部件.我在Notebook小部件外面有一个按钮,我想在按下此按钮时将文本插入当前选项卡Text小部件.
这似乎需要确定当前选择Notebook中的哪个小部件,但我似乎无法找到如何执行此操作.如何找到当前选中的标签?
或者,我该如何实现我想要的?
如果它有帮助,这是我的笔记本的代码:
self.nb = Notebook(master)
self.nb.pack(fill='both', expand='yes', padx=10, pady=10)
self.frames = []
self.texts = []
for i in xrange(8):
self.frames.append(Frame())
self.nb.add(self.frames[i])
self.texts.append(Text(self.frames[i]))
self.texts[i].pack(fill='both')
Run Code Online (Sandbox Code Playgroud) 好吧,我正在尝试使用Python登录网站并进行机械化.
我打开了网站:
site = br.open("http://example.com/login.php")
Run Code Online (Sandbox Code Playgroud)
我有一个表单列表(使用br.forms).
<GET http://example.com/search.php application/x-www-form-urlencoded
<HiddenControl(search=1) (readonly)>
...
<POST http://example.com/login.php application/x-www-form-urlencoded
<TextControl(username=)>
<PasswordControl(password=)>
<CheckboxControl(stay=[1])>
<SubmitControl(<None>=Log in) (readonly)>>
Run Code Online (Sandbox Code Playgroud)
我一直在尝试提交用户名和密码字段.
我尝试这样做:
br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()
Run Code Online (Sandbox Code Playgroud)
然后我意识到我试图填写的表单不是页面上的第一个,但更改0对任何事都没有帮助.如何在这样的页面上选择表单?
然而!这不是唯一的问题.
当我运行它时,我收到此错误:
Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?D:或者我完全错了吗?如果是后者,我该怎么做呢?
我使用Elastic Beanstalk的Web仪表板来创建应用程序和环境.我知道我可以使用仪表板更新它并上传我的应用程序的zip文件,但我宁愿使用命令行上传我的应用程序.
显然,正确的工具是ebElastic Beanstalk的CLI.我已经安装了这个并尝试使用它,遵循亚马逊" 将Flask应用程序部署到AWS Elastic Beanstalk "教程.但是,这似乎创建了与EB仪表板上可见的应用程序完全不同的应用程序 - 对其所做的更改未显示在仪表板上,并且应用程序甚至具有不同的URL.
如何使用命令行访问AWS Elastic Beanstalk上的现有应用程序?
我有一个结构化的NumPy数组:
a = numpy.zeros((10, 10), dtype=[
("x", int),
("y", str)])
Run Code Online (Sandbox Code Playgroud)
我想在设定值a["y"]要么"hello"如果相应的值a["x"]是负的.据我所知,我应该这样做:
a["y"][a["x"] < 0] = "hello"
Run Code Online (Sandbox Code Playgroud)
但这似乎改变了价值观a["x"]!我正在做什么有什么问题,我该怎么办呢?
Flask-SQLAlchemy提供了筛选查询的选项.您可以通过多种方式筛选查询 - Flask-SQLAlchemy文档提供的示例:
User.query.filter_by(username='peter') # Returns all users named 'peter'
User.query.filter(User.email.endswith('@example.com')) # Returns all users with emails ending in '@example.com'
Run Code Online (Sandbox Code Playgroud)
我还发现这是一对多的关系:
User.query.filter(User.addresses.any(address=address)) # Returns all users who have a particular address listed as one of their addresses
Run Code Online (Sandbox Code Playgroud)
问题:
我制作了一个简单的 Flask 应用程序,它本质上是一个围绕 sqlite3 的包装器。它基本上在本地运行开发服务器,您可以从 Web 浏览器访问该界面。目前,它的功能完全正常。
我需要在计算机上运行它,该计算机由计算技能不那么先进的人操作。我可以在计算机上安装 Python,然后运行我的 .py 文件,但我对所涉及的文件“公开”感到不舒服。有没有办法可以把这个应用程序放到一个可执行文件中?我曾尝试同时使用 py2exe 和 cx_freeze,但两者都在“图像”上引发了 ImportError。我还尝试压缩文件(__main__.py 和所有这些),但是在尝试运行该文件时遇到了 500 个错误(我假设该文件由于某种原因无法访问模板。)
如何将此 Flask 应用程序部署为可执行文件?
我正在开发一个使用 Click 的库。它包含在 Docker 映像中。我正在尝试使用 pytest 使用 来测试它click.testing.CliRunner。我用来logging编写日志,并且我已指定这些日志应在pyproject.toml. 当我的代码中引发异常(并且仅在 Docker 内)时,我从 Click 中得到以下异常:
/opt/conda/lib/python3.8/site-packages/click/testing.py:434: ValueError
except Exception as e:
if not catch_exceptions:
raise
exception = e
exit_code = 1
exc_info = sys.exc_info()
finally:
sys.stdout.flush()
> stdout = outstreams[0].getvalue()
E ValueError: I/O operation on closed file.
/opt/conda/lib/python3.8/site-packages/click/testing.py:434: ValueError
Run Code Online (Sandbox Code Playgroud)
我已经设法最小化地重现这个问题。我的代码看起来像这样:
/opt/conda/lib/python3.8/site-packages/click/testing.py:434: ValueError
except Exception as e:
if not catch_exceptions:
raise
exception = e
exit_code = 1
exc_info = sys.exc_info()
finally:
sys.stdout.flush()
> stdout = …Run Code Online (Sandbox Code Playgroud)