我正在尝试创建工作委员会网站,并在以表格形式输入邮政编码后,将该邮政编码传递到search_results
视图(作为zip_code
)。在这种情况下,我需要:
我已经完成了第一步,还没有实现第二步(实际代码不是很重要的问题:]
from uszipcode import Zipcode, SearchEngine
def search_results(request, zip_code):
zip_codes = []
search = SearchEngine(simple_zipcode=True) # create SearchEngine object
zip_code = search.by_zipcode(zip_code) #create Zipcode object?
latitude = zip_code.lat
longitude = zip_code.lng
result = search.by_coordinates(latitude, longitude, radius = 5, returns = 5)
for item in result:
zip_codes.append(item.zipcode)
# code that will return matching objects
我的问题是,您可以在Django视图中定义函数,例如:
def search_results(request, zip_code):
zip_codes = getSurroundingZipCodes(zip_code)
results = getJobsInArea(zip_codes)
return render(request, 'results.html', {'results: results})
def getSurroundingZipCodes(zip_code):
# logic for this function
def getJobsInArea(zip_codes):
# logic for this function
这是我在任何教程中都没有看到的东西,所以我觉得答案是否定的,但是我不确定为什么吗?
是的,你可以做到。 django视图在这里是一个函数。您可以在函数内部定义函数。这就是装饰器在python中的工作方式。但为什么我们不能在单独的模块中定义函数并将其导入上方?就像在文件中一样
utils.py
def getSurroundingZipCodes(zip_code):
# logic for this function
def getJobsInArea(zip_codes):
# logic for this function
并简单地导入
from utils import getSurroundingZipCodes,getJobsInArea
这样他们将是可恢复的