gpt4 book ai didi

python - Django 使用来自表单字段的变量运行 python 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:40 25 4
gpt4 key购买 nike

我正在尝试构建一个 Web 界面来执行一些 Python 脚本。一个这样的脚本用于登录到网络设备并运行一些命令,然后将它们保存到一个 excel 文件中。

我不确定这是否是正确的方法,但我已经将脚本变成了管理命令。

我可以使用 call_command() 让脚本从 View 运行,但我对如何将表单字段作为变量传递给脚本感到困惑。

以下是我认为相关的部分;

表单.py

class BaseLineForm(forms.Form):
username = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Required', 'size': 20}), error_messages={'required': 'Required'})
cec_pass = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Required', 'size': 20}), error_messages={'required': 'Required'})
enable_pass = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Required', 'size': 20}), error_messages={'required': 'Required'})
<additional form fields snipped...>

View .py

from baseline.forms import BaseLineForm
from django.core.management import call_command

def baseline(request):
if request.method == 'POST':
form = BaseLineForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['cec_pass']
enable = form.cleaned_data['enable_pass']
call_command('baseline')

基线.py

from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):
args = ''
help = ''

def handle(self, *args, **options):
<I have tried to import the view but I get an error cannot import name views>
from baseline import views <if I run this from the shell it imports fine>
<rest of script here>

环境; Centos 6.4、virtualenv、django 1.6、python 2.6

我真的很难过,所以提前感谢任何有想法的人。

最佳答案

这可能对将来的人有帮助,所以我在这里添加。

在项目主目录的task.py文件中添加任务

@app.task(name='tasks.get_baseline')
def get_baseline(args):
result = call(args)

将任务导入 View

from nettools import tasks

创建参数列表

args = ['/path/tp/script/get_baseline.py', username, password, enable, user_email, device]

运行任务

tasks.get_baseline.delay(args)

关于python - Django 使用来自表单字段的变量运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21036204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com