我知道这对许多人来说可能是一个重复的问题,但我还没有找到适当的答案。我是Django和Python的初学者。我有一个python代码,目前在cli上运行并生成输出,但我希望相同的程序在web上运行它的输出。
我读到web django是最合适的框架,为此我开始学习django。我在每个教程中都看到人们讨论了应用程序,查看了URL等,但没有看到将python代码与django集成的示例。
我想要了解如何将我的python脚本与Django集成,以及我将代码放在Django项目或应用程序中的哪个位置。我应该在视图中导入它吗?如果是,那么如何将我的输出呈现给网络。
以下是我正在运行的示例代码,它基本上打开两个文件并运行一些正则表达式来提取所需的信息。
import re
def vipPoolFileOpen(): # function opens vip and pool config file and store them to vip_config and pool_config variables
with open("pool_config.txt",'rb') as pool_config:
pool_config = pool_config.read()
pool_config = pool_config.split('ltm')
with open("vip_config.txt",'rb') as vip_config:
vip_config = vip_config.read()
vip_config = vip_config.split('ltm')
return vip_config,pool_config
def findWidth(vip_config): # function to find the maximum length of vip in entire file, this will be used to adjust column space
colWidth=0
for item in vip_config:
i=0
if colWidth<len(item):
while i<len(vip_config)-1:
if len(item)>=len(vip_config[i+1]):
colWidth=len(item)
i=i+1
else:
i+=1
continue
return colWidth
def regexFunction():
vip_config, pool_config = vipPoolFileOpen()
findWidth(vip_config)
for vip in vip_config:
regVip = re.compile(r'pool (.+)\r')
poolByVip = regVip.findall(vip) # poolByVip holds pool name from the vip_config file
for poolblock in pool_config:
regPool = re.compile(r'pool (.+) {')
poolByConfig = regPool.findall(poolblock)
if poolByVip == poolByConfig:
print vip + poolblock
break
elif poolByVip == ['none']:
print vip
break
else:
continue
答案 0 :(得分:1)
是的,您应该通过视图将您的输出呈现给网络。你需要在views.py中编写一个视图函数(或一个类视图),并在urls.py
中提供一个你想要的URL。如果您重写函数以返回所需的结果而不是打印它,tou可以执行以下操作:
在views.py
中写下这个from django.http import HttpResponse
from wherever_you_have_it import regexFunction
def bar(request):
result = regexFunction() # result should be a string
return HttpResponse(result)
并在urls.py中:
from .views import bar
urlpatterns = [
url(r'^foo$', bar),
]
当然,您首先要创建Django应用程序。
您的结果应该在地址localhost:8000 / foo上显示为纯文本 - 但您需要:
python menage.py runserver
首先在您的终端
当然可以随意看看: https://github.com/Ergaro/CheckMyChords 看看简单的django应用程序是怎样的