2017-07-16 4 views
0

web.pyを使用してウェブサイトを再作成する方法を学習しようとしていますが、必要な構文が見つからない。webpy(2.7)を使用してテンペット内でhtmlを呼び出す方法

純粋なHTMLを含め、私が使用した他の言語でも、スクリプト、オブジェクト、パッケージ、またはビューを呼び出してHTMLをレンダリングする方法があります。だから私はPythonでこれをどうやってやるのだろう?

レイアウト以外のファイルを静的ディレクトリに再配置し、HTMLを何らかの形で書き込んだり返すPythonファイルとして書き直したり、アクセスする方法がある場合はURL処理のサブファイルを含めることができますそのようにhtmlにロードしてください。

私はそのセクションに必要なHTMLを書いたり、呼び出すスクリプトを実行するために.pyを呼び出すことを望んでいましたが、私のニーズを満たす例は見つけられないようです。

ご協力いただきありがとうございます。

今私のコードのようなものになります。 code.py

import web 

urls = (
    '/favicon.ico', 'icon', 
    '/', 'index', 
    '/index', 'index' 
) 

app = web.application(urls, globals(), autoreload=True) 
render = web.template.render('templates/')#, base='Layout') 
static = web.template.render('static/') 
Main = web.template.render('templates/') 
MainContent = web.template.render('Content/') 

class static: 
    def GET(self): 
     return static() 

class icon: 
    def GET(self): 
     return static.favicon() 

class index: 
    def GET(self): 
     return Main.Layout(0, 0, 'Main.css') 

if __name__ == '__main__': 
    app.run() 

/templates/Layout.html

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <link href="static/$vCSS" rel="stylesheet" type="text/css"> 
</head> 
<body id="idBody"> 
    <table id="idTableMain"> 
     <tr id="idHeaderRow"> 
      <td id="idHeaderRowCenter" colspan="3"> 
       <img src="static/logo.jpg"/> 
      </td> 
     </tr> 
     <tr id="idNavigationRow"> 
      <td id="idNavigationBar" colspan="3"> 
       <!--Display /templates/NavBar.html --> 
      </td> 
     </tr>    
     <tr id="idCenterRow"> 
      <td id="idCenterRowLeft"> 
       <h4> 
        Navigation 
       </h4> 
       <!--Display /templates/Navigation.html --> 

      </td> 
      <td id="idCenterRowMain"> 
       <!--Display /templates/Content/Content_index.html --> 
      </td> 
      <td id="idCenterRowRight"> 
       <h4> 
        Information 
       </h4> 
       This was written with Python.<br><br> 
       Other versions of this page are here:<br> 
       <!--Display /templates/Versions_index.html --> 
      </td> 
     </tr> 
     <tr id="idFooterRow"> 
      <td id="idFooterMain" colspan="3"> 
       <!--Display /templates/Footer.html --> 
      </td> 
     </tr> 
    </table> 
</body> 
</html> 
+0

戻ってきて、その後、web.pyのドキュメントで入手可能な例に従ってくださいより具体的な質問があります。 – pbuck

+0

私が見つけたものはこれをカバーしていません。データベースにスキップします。 – Kamurai

+0

これは十分に具体的な質問ですが、web.pyとpythonをよく知っている皆さんにとって、明白で簡単なものです。 私はちょっと緑色だから、すべてのコードを変数に入れてメインの.pyファイルに渡すのではなく、これをどうやって行うのかに関するガイダンスを使うことができます。回答。 – Kamurai

答えて

0

さて、私は少しのことを学んだし、今の私を複製することができる午前ましたがweb.pyのサイトでは、しかし、私はどのように私は特定の場所でやっているのが好きではありません。

1)毎回Mainを呼び出さずにテンプレートを呼び出せるようにしたい。 2)レイアウトから関数を呼び出せるようにしたい。

ご希望の場合は、上記のアドバイスを参考にしてください。

これをコピーし、別の質問として再転記します。

code.py:

import web 
import Universal 
import Navigation 
import Content 
import Versions 


urls = (
    '/favicon.ico', 'icon', 
    '/', 'index', 
    '/Section1/index', 'Section1', 
    '/Section2/index', 'Section2', 
    '/Section3/index', 'Section3' 
) 

app = web.application(urls, globals(), autoreload=True) 
render = web.template.render('templates/')#, base='Layout') 

static = web.template.render('static/') 

Main = web.template.render('templates/') 
Section1 = web.template.render('templates/Section1/') 
Section2 = web.template.render('templates/Section2/') 
Section3 = web.template.render('templates/Section3/') 

class static: 
    def GET(self): 
     return static() 

#class icon: 
# def GET(self): 
#  return static.favicon() 

class index: 
    def GET(self): 
     vPage = '0' 
     vLevel = '0' 
     vSection = '0' 
     vHead = Universal.getHead(vSection) 
     vHeader = Universal.getHeader() 
     vNavBar = Universal.getNavBar() 
     vNavigation = Navigation.getNavigation(vLevel) 
     vContent = Content.getContent(vLevel) 
     vVersions = Versions.getVersions(vLevel) 
     vFooter = Universal.getFooter() 
     return Main.Layout(vHead, vHeader, vNavBar, vNavigation, vContent, vVersions, vFooter) 

class Section1: 
    def GET(self): 
     vPage = '0' 
     vLevel = '1' 
     vSection = '1' 
     vHead = Universal.getHead(vSection) 
     vHeader = Universal.getHeader() 
     vNavBar = Universal.getNavBar() 
     vNavigation = Navigation.getNavigation(vLevel) 
     vContent = Content.getContent(vLevel) 
     vVersions = Versions.getVersions(vLevel) 
     vFooter = Universal.getFooter() 
     return Main.Section1.Layout(vHead, vHeader, vNavBar, vNavigation, vContent, vVersions, vFooter) 

class Section2: 
    def GET(self): 
     vPage = '0' 
     vLevel = '2' 
     vSection = '2' 
     vHead = Universal.getHead(vSection) 
     vHeader = Universal.getHeader() 
     vNavBar = Universal.getNavBar() 
     vNavigation = Navigation.getNavigation(vLevel) 
     vContent = Content.getContent(vLevel) 
     vVersions = Versions.getVersions(vLevel) 
     vFooter = Universal.getFooter() 
     return Main.Section2.Layout(vHead, vHeader, vNavBar, vNavigation, vContent, vVersions, vFooter) 

class Section3: 
    def GET(self): 
     vPage = '0' 
     vLevel = '3' 
     vSection = '3' 
     vHead = Universal.getHead(vSection) 
     vHeader = Universal.getHeader() 
     vNavBar = Universal.getNavBar() 
     vNavigation = Navigation.getNavigation(vLevel) 
     vContent = Content.getContent(vLevel) 
     vVersions = Versions.getVersions(vLevel) 
     vFooter = Universal.getFooter() 
     #return render.Layout(vHead, vHeader, vNavBar, vNavigation, vContent, vVersions, vFooter) 
     return Main.Section3.Layout(vHead, vHeader, vNavBar, vNavigation, vContent, vVersions, vFooter) 

テンプレート/ Layout.html:

$def with (vHead, vHeader, vNavBar, vNavigation, vContent, vVersions, vFooter) 

<html> 
<head> 
    $:vHead 
</head> 
<body id="idBody"> 
    <table id="idTableMain"> 
     <tr id="idHeaderRow"> 
      <td id="idHeaderRowCenter" colspan="3"> 
       $:vHeader 
      </td> 
     </tr> 
     <tr id="idNavigationRow"> 
      <td id="idNavigationBar" colspan="3"> 
       $:vNavBar 
      </td> 
     </tr>    
     <tr id="idCenterRow"> 
      <td id="idCenterRowLeft"> 
       <h4> 
        Navigation 
       </h4> 
       $:vNavigation 
      </td> 
      <td id="idCenterRowMain"> 
       $:vContent 
      </td> 
      <td id="idCenterRowRight"> 
       <h4> 
        Information 
       </h4> 
       This was written with Python 2.7 and web.py.<br><br> 
       Other versions of this page are here:<br> 
       $:vVersions 
      </td> 
     </tr> 
     <tr id="idFooterRow"> 
      <td id="idFooterMain" colspan="3"> 
       $:vFooter 
      </td> 
     </tr> 
    </table> 
</body> 
</html> 

Universal.py

def getHead(vSection): 
    vResult = '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">' 
    vResult += '<link href=' + getCSS(vSection) + ' rel=\"stylesheet\" type="text/css">' 
    return vResult 

def getCSS(vSection): 
    if vSection == '1': 
     vResult = '/static/Section1/Section1.css' 
    elif vSection == '2': 
     vResult = '/static/Section2/Section2.css' 
    elif vSection == '3': 
     vResult = '/static/Section3/Section3.css' 
    else: 
     vResult = '/static/Main.css' 
    return vResult 

def getHeader(): 
    vResult = '<img id=\"idLogo\" src=' + getLogo() + '>' 
    return vResult 
def getNavBar(): 
    vResult = '<a class=\'navBar\' href=\'/index\'>Home</a>' 
    vResult += '<a class=\'navBar\' href=\'/Section1/index\'>Web Programming</a>' 
    vResult += '<a class=\'navBar\' href=\'/Section2/index\'>Private Projects</a>' 
    vResult += '<a class=\'navBar\' href=\'/Section3/index\'>Downloadable Projects</a>' 
    return vResult 
関連する問題