[英]Django: how do I use the form values in other python scripts?
這是我的views.py
from django.shortcuts import render
from .reisplanner import *
def home(request):
return render(request, 'home.html', {})
def reisplanner(request):
if request.method == 'POST':
form = reisplannerForm(request.POST)
if form.is_valid():
beginstation = form.cleaned_data['beginstation']
eindstation = form.cleaned_data['eindstation']
print(beginstation, eindstation)
else:
form = reisplannerForm()
return render(request, 'reisplanner.html', {'form': form})
這是forms.py
from django import forms
class reisplannerForm(forms.Form):
beginstation = forms.CharField(required=True)
eindstation = forms.CharField(required=True)
我想使用reisplanner.py
的變量
def reisplanner():
#
# use the values of the form here
#
我實際上已經嘗試了一切,這是針對一個學校項目的,並且已經嘗試修復了大約2天,但沒有結果。
如果你們能幫助我,那太好了。 如何獲取表單值到python腳本?
在reisplanner.py
def my_reisplanner(form):
beginstation = form.cleaned_data['beginstation']
eindstation = form.cleaned_data['eindstation']
# Do somthing with the values
在views.py
from django.shortcuts import render
from .reisplanner import *
def home(request):
return render(request, 'home.html', {})
def reisplanner(request):
if request.method == 'POST':
form = reisplannerForm(request.POST)
if form.is_valid():
beginstation = form.cleaned_data['beginstation']
eindstation = form.cleaned_data['eindstation']
print(beginstation, eindstation)
# You can call this function because you imported it in line 2
my_reisplanner(form)
else:
form = reisplannerForm()
return render(request, 'reisplanner.html', {'form': form})
唯一的問題是要調用的函數的名稱。 如果對視圖函數和過程函數使用相同的名稱,則導入時會出現問題。
在上一個代碼片段中,我將流程函數重命名為my_reisplanner
以避免任何沖突。 如果您不想(或無法)重命名流程功能(請參閱下文),則還有其他解決方案。
一般來說,不鼓勵這種進口
from .reisplanner import *
因為您無法控制導入的內容。 喜歡這個:
from .reisplanner import reisplanner as reisplanner_name_alias
# [...]
# Call reisplanner using local alias created from imports
reisplanner_name_alias()
或簡單地
from . import reisplanner
# [...]
# Call reisplanner using full modul dotted path
reisplanner.reisplanner()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.