質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Pug

Pug(旧Jade)とは、HTMLを書くためのテンプレートエンジン。タグで囲む必要がないなど記述を省略できるため、HTMLの記述が簡単になります。ファイル分割も可能で、変数やループなど便利な機能も備わっています。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3628閲覧

Djangoで使用するHTMLテンプレートをPugで作成したい

hnzwjun

総合スコア25

Pug

Pug(旧Jade)とは、HTMLを書くためのテンプレートエンジン。タグで囲む必要がないなど記述を省略できるため、HTMLの記述が簡単になります。ファイル分割も可能で、変数やループなど便利な機能も備わっています。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/11/25 15:05

Djangoで現在jinja2を使用して開発しているのですが、jinja2で使用するHTMLテンプレートをpugを使用して作成したいです。

理由としてはpugの方がHTML作成やメンテが楽だからです。

ただ、jinja2の変数やループの機能も使用したいです。


body p {{val}}

単純に変数を使用するだけであれば、上記の様に記述しview内で「val」に値を設定すれば

html

1<body> 2 <p>{{val}}</p> 3</body>

この様に望んだ形のHTMLが出力されます。


しかし、ループ機能を使用しようとして

body {% for form in forms %} p {{form}} {% endfor %}

上記の様に記述するとエラーになってしまいます。(当たり前ではありますが・・・)

body | {% for form in forms %} p {{form}} | {% endfor %}
body . {% for form in forms %} p {{form}} . {% endfor %}

上記2つの様に「|」や「.」を使用して記述すればなんとかHTMLを出力することは出来るのですが、他に何か上手い方法はないかと思った次第です。


Djangoでjinja2(またはその他テンプレート)を使用しながらPug等を使用して開発している方いましたら是非どの様に開発をしているのか教えて頂けないでしょうか?
※開発方法やライブラリ等

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

軽く探してみたところ、 Pug の記法で各種フレームワークのテンプレートが書けるライブラリがあるそうです。一度試してみるのはどうでしょうか。

https://github.com/matannoam/pypugjs

投稿2017/11/26 03:56

編集2017/11/27 01:29
tell_k

総合スコア2120

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hnzwjun

2017/11/27 01:28

回答頂きありがとうございます。 教えて頂いたライブラリ「pypugjs」を試してみようと思います。
guest

0

[pypugjs]をインストールして[setting.py]に

TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [os.path.join(BASE_DIR, 'src/pug')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], 'extensions': [ 'pypugjs.ext.jinja.PyPugJSExtension', ], }, }, ]

上記の様にextensionsの設定を行うことで使用できました。

投稿2017/11/27 02:14

hnzwjun

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問