2017-10-26 5 views
0

これは多くの人にとって繰り返しの質問になるかもしれませんが、私はこれについてまだ適切な答えを見つけることができませんでした。私はDjangoとPythonの初心者です。私は現在実行しているcli上で出力を生成するPythonコードを持っていますが、Web上でその出力を実行する同じプログラムが必要です。DjangoでPythodコードを実行し、Web上に出力を生成します

私はウェブdjangoが最適なフレームワークであることを読んだので、この目的のために私はdjangoを学び始めました。私はすべてのチュートリアルで、人々がアプリ、ビューのURLなどを議論しているが、Pythonコードとdjangoを統合する例は見られないことがわかります。

私はPythonスクリプトをDjangoとどのように統合できるのか、Djangoプロジェクトまたはアプリケーションで私のコードをどこに配置すればよいのか理解したいと思っています。ビュー内でインポートする必要がありますか?はいの場合は、ウェブに出力する方法

私が実行しているサンプルコードは、基本的に2つのファイルを開き、いくつかの正規表現を実行して必要な情報を抽出します。

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 

答えて

1

はい、出力はWeb経由で表示する必要があります。 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中で:あなたはもみであなたのDjangoアプリケーションを作成しているのコースの提供

from .views import bar 

urlpatterns = [ 
    url(r'^foo$', bar), 
] 

次の操作を行うことができます場所。

あなたの結果はアドレスローカルホスト上のプレーンテキストとして表示されなければならない

:8000/fooの - しかし、あなたがする必要がある: :

端末最初

python menage.py runserver 

そしてもちろんを見て自由に感じますhttps://github.com/Ergaro/CheckMyChords シンプルなジャンゴアプリの外観を見てください

+0

ここに返信いただきありがとうございます! それは私を助けました – Rsingh

関連する問題