我已经requests在 python 2.7 中尝试过这个模块并且非常喜欢它,但是当我尝试在一个线程中使用它时,它似乎不起作用:
def doWork():
try:
print "before"
requests.get('http://www.google.fr')
print "after"
except Exception as e:
print "Error : "+ str(e)
# Working : I see "before" & "after"
doWork()
# Not working, i see "before" but never "after"
t = Thread(target=doWork)
t.start()
Run Code Online (Sandbox Code Playgroud)
我试过这种方式,但它是一样的:
class TestThread(Thread):
def run(self):
try:
print "before"
requests.get('http://www.google.fr')
print "after"
except Exception as e:
print "Error : "+ str(e)
test_thread = TestThread()
test_thread.start() # I will see "before" but never "after"
test_thread.join()
Run Code Online (Sandbox Code Playgroud)
我试图等待几分钟(几小时),但它仍然无法正常工作;既没有after …
我正试图用另一台服务器(Server#02)"代理"我的Flask服务器(我称之为Server#01).它运行良好除了一件事:当服务器#01使用send_from_directory()时,我不知道如何重新发送此文件.
我的经典"代理人"
result = requests.get(my_path_to_server01)
return Response(stream_with_context(result.iter_content()),
content_type = result.headers['Content-Type'])
Run Code Online (Sandbox Code Playgroud)
随着文件的响应,它需要几个小时...所以我尝试了很多东西.工作的人是:
result = requests.get(my_path_to_server01, stream=True)
with open('img.png', 'wb') as out_file:
shutil.copyfileobj(result.raw, out_file)
return send_from_directory('./', 'img.png')
Run Code Online (Sandbox Code Playgroud)
我想"重定向"我的响应("结果"变量),或发送/复制我的文件流.无论如何我不想使用物理文件,因为它似乎不是我心中的正确方式,我可以想象所有可能因此发生的问题.
我正在尝试弄清楚流/状态流和数据绑定。
\n在我的项目中,我有 Room 中的“打印机”列表,以及 SharedPreferences 中的“默认打印机”的 ID。
\n\n我是否使用了良好的流程并做得很好,还是出了什么问题?
\n房间给我一个Flow<List<Printer>>。借助我的适配器,我将其显示在回收器视图中viewModel.allPrinters.collect。
但是,当我想从房间绑定资源时,绑定“需要”LiveData 或 StateFlow,这是我的困难,因为 stateIn 需要协程。
\n我怎样才能从我的默认打印机Flow<List<Printer>>(通过他的属性“id”在列表中找到它)并确保列表/项目是否更新,我的参考也将获得更新?\n如果我更改打印机的名称defaultPrinter并将其更新到 room(感谢我的存储库/room DAO),我希望在我的对象defaultPrinter和列表中更改名称。
您还可以确认我的变量类型defaultPrinter应该是StateFlow<Printer?>
注意:当我更新项目时,printerRoomDAO.update(item:Printer)我必须传递数据对象的副本Printer(新引用),否则我的 UI 将不会更新。
isPrinterListEmpty这是我的 ViewModel 中的示例
val hasNoPrinter = allPrinters.mapLatest {\n it.isEmpty()\n}.asLiveData()\nRun Code Online (Sandbox Code Playgroud)\n它运行良好,但我不应该使用 StateFlow 吗?怎么做 ?因为stateIn()需要一个协程,而我下面的尝试不起作用。
val hasNoPrinter = …Run Code Online (Sandbox Code Playgroud) data-binding kotlin android-livedata kotlin-flow kotlin-stateflow