Mục tiêu của tôi là nhấp vào nút HTML trên trang web Django của tôi và điều này sẽ thực thi tập lệnh Python cục bộ.
Tôi đang tạo một ứng dụng web cục bộ như một giao diện cho một dự án. Điều này sẽ không được lưu trữ và sẽ luôn luôn chạy trên máy cục bộ của tôi. Dự án của tôi được thực hiện với một kịch bản Python [thực hiện nhiều bài kiểm tra cụ thể cho dự án của tôi]. Tất cả những gì tôi cần là một nút trong giao diện web của tôi để thực hiện tập lệnh này trên máy của tôi.
Tôi có một chỉ mục mẫu.html nơi toàn bộ trang web được đặt. Tôi cho rằng tôi cần gọi một số dạng chức năng xem có thể khi nhấn nút?
Làm thế nào để thực thi mã python bằng nút html django?
Câu hỏi này cho thấy:
def index[request]:
if request.method == 'GET':
return render[request, 'yourapp/index.html', {'output': ''}]
elif request.method == 'POST':
py_obj = mycode.test_code[10]
return render[request, 'yourapp/output.html', {'output': py_obj.a}]
Tôi đã thử điều này chỉ như một bài kiểm tra nhưng không có gì xảy ra khi tôi đi đến URL [nằm trong chế độ xem thích hợp]:
def runtest[request]:
print["Hello World"]
Popen[['gnome-terminal', '-e', 'echo "Hello World"'], stdout=PIPE]
return
Tuy nhiên, tôi không hiểu nếu điều này đạt được những gì tôi cần, tôi đang đấu tranh để hiểu câu trả lời là gì.
Trường hợp trong khung Django tôi có thể chỉ định cuộc gọi đến tập lệnh Python cục bộ khi nhấn nút?
[Tôi có kinh nghiệm rất hạn chế với các ứng dụng web, đây chỉ đơn giản là một giao diện đơn giản với một số nút để chạy thử nghiệm]
Xin chào các bạn, vì vậy tôi đã tạo một bảng điều khiển với Django, nó có các trang chấp nhận từ khóa từ người dùng và khi người dùng nhấp OK, tôi muốn gọi một tập lệnh Python bên ngoài lấy từ khóa đó làm đối số và trả về kết quả. [Tệp CSV]
Đầu vào bảng điều khiển
Vấn đề là, khi tôi gọi một tập lệnh Python đơn giản, nó hoạt động tốt và trả về kết quả, nhưng khi tôi gọi tập lệnh gốc dài và phức tạp hơn, nó không hoạt động. Tôi muốn nói thêm rằng tôi chưa quen với Django và tôi đã thử nhiều giải pháp nhưng chúng không hoạt động, vì vậy tôi nghĩ vấn đề là với tập lệnh Python của tôi hoạt động tốt khi tôi kiểm tra nó riêng lẻ.
views.py
test.py hoạt động tốt vì nó chứa một tập lệnh Python đơn giản.
test.py
Tôi chỉ muốn biết tại sao tập lệnh gốc của tôi không hoạt động khi tôi gọi nó.
Xin vui lòng, đọc hướng dẫn này: Cách tạo đầu ra CSV | Tài liệu Django | Django [^] Đây là ví dụ rất đơn giản:
This is very simple example:
import csv from django.http import HttpResponse def some_view[request]: # Create the HttpResponse object with the appropriate CSV header. response = HttpResponse[ content_type='text/csv', headers={'Content-Disposition': 'attachment; filename="somefilename.csv"'}, ] writer = csv.writer[response] writer.writerow[['First row', 'Foo', 'Bar', 'Baz']] writer.writerow[['Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"]] return response
Tôi đã làm việc để tạo một tập lệnh Python sẽ chạy bằng cách nhấp vào nút và sau đó hiển thị đầu ra trong trang Django HTML. Cho đến nay tôi đã quản lý để tạo một nút sẽ chạy tập lệnh nhưng tôi không thể hiển thị bất kỳ kết quả nào dưới đây là mã tôi đã sử dụng, nó chạy tập lệnh Python trong shell nhưng không đi xa hơn.
Trong quan điểm của tôi.py
def Yellow[request]:
inp = request.POST.get['param']
out = run[['python', '/yellow_page_updated.py', inp], stderr=subprocess.DEVNULL]
print[out.stderr]
print["Finished!!"]
return render['Yellow_Page.html', {'data1': out}]
Trong url.py của tôi
url[r'^Yellow', views.Yellow, name="Yellow"]
Nếu bất cứ ai có thể giúp đỡ hoặc chỉ cho tôi đi đúng hướng, tôi sẽ rất biết ơn.
Nếu kiến thông tin khác là cần thiết, vui lòng cho tôi biết
Cảm ơn đã dành một cái nhìn
Trở lại đầu trang