3

PHP言語のようにPythonとhtmlタグを書くことができることを、Python言語で書くことができますか(またはそのようなWebフレームワークが存在する可能性があります)。

そのような python ファイル構造を持つことができますか:

some_python_file.py:

<html>
<head>
     <title>Lol</title>
<head>
<body>
    My PyWeb Slang
</body>
</html>

<!-- this part should be python -->
<?py
    from Eternity import Kiss

    love = Kiss.Forever()
    print "%s" % love
?>

申し訳ありませんが、大文字で書いています:

各行 {% goodies %} または <%= goodies %> でテンプレートが使用されていることがわかります。

{% extends "layout.html" %}
{% block body %}
  <ul>
  {% for user in users %}
    <li><a href="{{ user.url }}">{{ user.username }}</a></li>
  {% endfor %}
  </ul>
{% endblock %}

しかしPHPでは:

<div>Good Morning, Sun!</div>
<?php

     echo "Happy!";
     echo "Hi, WaterLand!";

?>

Python がそのようにできるとしたら、次のようになります。

<div>Good Morning, Sun!</div>

<?py

     print "%s" % "Happy!"
     print "%s" % "Hi, WaterLand!";

?>

アイデアはわかりましたか、それとももっと明確にする必要がありますか?

ありがとうございました。:)

うーん、もしそうなら:

mod_python で次のように記述できますか (以下の[morphyn]の例を拡張):

<html>
<%
    greet = 'Hello Wee!'
    answer = 'Hello Bee!'
%>
<h1><%= greet %></h1>
<h2><%= answer %></h2>
</html>

<% ... %> に 2'u 以上の行が表示されます。

4

3 に答える 3

5

これはまさにあなたが求めているものではありませんが、これを行う適切な方法はテンプレート エンジンを使用することです。Jinja2を見てください。Djangoは独自のテンプレート エンジンも提供します。

アップデート:

デフォルトでは、Python を HTML ページに埋め込むことはできません。ただし、少なくとも 1 つの方法があります。mod_pythonApache2 のモジュールである は、PSP (Python Server Pages) で必要な種類の機能を提供します。

<html>
<%
    greet = 'Hello'
%>
<h1><%= greet %></h1>
</html>

一般に、ロジックとプレゼンテーションを混在させることはお勧めできません。元の回答で述べたように、適切な方法はテンプレート エンジンを使用することです。あなたがやりたいことをするのに十分な理由があるかもしれませんが、おそらくそうではありません。

于 2013-02-05T14:06:56.767 に答える
1

web.pyは、希望する方法と同様に機能しますが、少し逆です。URL を使用してクラスを呼び出すと、クラスは、テンプレートが HTML ページにレンダリングされるときにコンテンツを設定するために渡されるパラメーターを持つことができるテンプレートをレンダリングできます。Djangoよりも使いやすいと思いますが、頻繁にコンテンツを変更することが多い場合は、この方法が適しているかもしれません。以下は、web.py Web サイトのコード例であり、その単純さを示しています。

import web

urls = (
    '/(.*)', 'hello'
)
app = web.application(urls, globals())

class hello:        
    def GET(self, name):
        if not name: 
            name = 'World'
        return 'Hello, ' + name + '!'

if __name__ == "__main__":
    app.run()
于 2013-02-05T15:18:47.473 に答える
0

はい: PSP (Python Server Pages)を使用できます[User:morphyn answer]

Paul Osman : mod_python の紹介

記事の例:

<%
    a = [1,2,3,4,5,6]
    for number in a:
%>
This is a number: <%=number %> <br />
<%
    # this terminates the iteration
%>
<h1>Hello</h1>
于 2013-02-05T18:20:34.123 に答える