【发布时间】:2020-06-27 22:56:15
【问题描述】:
我有一个 python 脚本 (A.py),它接受用户通过表单输入并运行另一个 python 脚本 (B.py)。 B.py 将 html 格式的结果存储到一个名为 yyyymmdd 的文件夹中。
B.py 生成的文件类似于“results_hhmmss.html”,所以每次执行 B.py 脚本都会创建一个新的 has html 文件。
根据我下面的 urls.py 代码,访问 127.0.0.1:8888 会将我带到 home_page。此外,一旦我使用主页中的按钮提交表单,脚本就会成功执行并生成结果文件。
由于结果文件名不断变化,我不确定如何呈现结果。
因此,我尝试保持一个不变的页面 results.html 并在 results.html 中添加指向文件 results_hhmmss.html 的超链接。
我尝试为 href= 提供 results_hhmmss.html 文件的绝对路径,当悬停指向时可以看到超链接file:///Users/msh0047/tmp/welcome/20200627/results_231603.html
但是,单击超链接后,什么也没有发生。
当我在新选项卡中打开超链接时,我在地址栏中看到带有“about:blank#blocked”的空白页面。
我还尝试为 href= 提供 results_hhmmss.html 文件的相对路径,当悬停指向时可以看到超链接 http://127.0.0.1:8888/20200627/results_231603.html ,单击超链接会引发错误提示 Page not found(404) 和 当前路径 20200627/results_231603.html 与其中任何一个都不匹配。(这些= urls.py 中列出的任何 url 路径)。
但是,我可以通过直接在地址栏中输入/粘贴绝对路径来打开该 results_hhmmss.html 文件。
我不确定我在这里做错了什么,请您帮忙指导一下。
urls.py 内容如下:
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home_page),
path('results/', views.generate_results_file, name='run_generate_file_script'),
]
views.py 内容文件如下:
def generate_results_file(request):
hhmmss = str(datetime.now().strftime("%H%M%S"))
yyyymmdd = str(datetime.now().strftime("%Y%m%d"))
results_filename = "templates/results_" + hhmmss + ".html"
ls_cmd = "pwd; ls -lart | tee " + results_filename
output = subprocess.Popen(ls_cmd, shell=True, stdout=subprocess.PIPE)
wait_for_sec = request.POST.get('seconds')
time.sleep(int(wait_for_sec))
return render(request, results_filename)
def home_page(request):
# Purpose: Just display welcome home_page.html
return render(request, 'welcome/home_page.html')
提前感谢大家抽出宝贵时间阅读这篇文章并愿意提供帮助。
【问题讨论】: