#やりたいこと
表(tableタグ)をviews.pyで編集し、templates内にviews.pyで編集した表をHTMLとして表示させたいです。
#やりたいことイメージ
URLを叩くと以下のように、views.pyで設定したtableが正しくHTMLで表示したい
例えばhogehoge.comをブラウザをみると以下のようになる。
メニュー | 説明 | 豆知識 |
---|---|---|
カルボナーラ | 玉子とベーコンとクリームソースのパスタ | カルボナーラとは炭焼き職人という意味 |
ペスカトーレ | エビとあさりの漁師風パスタ | ペスカトーレは漁師風という意味 |
#現状できていないことのイメージ
ブラウザ上でpasta.htmlを表示すると、以下ソースがそのまま単純な文字列としてhtml上に出力されてしまいます。
htmlタグとしてtableが表示されません。URLをたたくと「表」が表示されるのではなく文字列がずらっと出ます。
#しらべたこと
自分でデバッグを行い
1.views.pyからtemplates内のpasta.htmlへデータ遷移のさせ方が悪い →データ遷移は実施できていた為正常。
2.またはtemplates内のpasta.htmlのTABLEタグやHTMLタグの設定方法がおかしい →異常
上記2点が問題と探りました。1ではなく2が原因と思いますが解決できませんでした。
#2つのファイルのデータ遷移ソース
具体的には以下のようにVIEWS.PYで
#views.py
html_template = """ {table} """ context = { 'fld': html_template, }
この一行のhtml_templateの中にtableタグを格納しています。
contextの辞書型にtableタグを格納している事がよくないのかなと思いましたが解決できませんでした。fldはそのまま以下のtemplatesフォルダ内のpasta.htmlへ飛びます。{table}の中には上記で示したtableタグが入ってます。
'fld': html_template,
実際にtableタグを表示させたいpasta.htmlの中身は以下のようになっています。
#pasta.html
{% extends 'pasta.html' %} {% block main %} {% load static %} <h1>ぱすた</h1> {{ fld }} {% endblock %}
すると実際のURLをブラウザ上でたたくと、ブラウザ内のHTML上は以下のように表にはならずタグが直接表示されてしまっています。そこでpasta.htmlに自分でPタグやh1タグを直打ちしてみると正しくHTMLタグとして認識されました。
{{ fld }}
というコードの中にはtableタグが確かに入ってるのですが
HTMLとして変換されず以下のように文字として表示されてしまいます。なお<h1>ぱすた</h1>は正しくブラウザ上で表示されていますのでHTMLタグ全体が聞かないという事はありません。{{ fld }}だけがHTMLタグではなく文字として認識されています。
base.htmlの内容などは正常稼働している事は確認済です。
pasta.html内における<h1>タグやその他HTMLタグは直打ちすればすぐ正常に閲覧可能です。
pasta.htmlファイル内をどのように設定すればtableタグが表として正しく表示されるのでしょうか?
お手数おかけいたします。
#上記tableのHTMLソース
<table border="1" width="500" cellspacing="0" cellpadding="5" bordercolor="#333333"> <tr> <th bgcolor="#EE0000"><font color="#FFFFFF">メニュー</font></th> <th bgcolor="#EE0000" width="150"><font color="#FFFFFF">説明</font></th> <th bgcolor="#EE0000" width="200"><font color="#FFFFFF">豆知識</font></th> </tr> <tr> <td bgcolor="#99CC00" align="right" nowrap>カルボナーラ</td> <td bgcolor="#FFFFFF" valign="top" width="150">玉子とベーコンとクリームソースのパスタ</td> <td bgcolor="#FFFFFF" valign="top" width="200">カルボナーラとは炭焼き職人という意味</td> </tr> <tr> <td bgcolor="#99CC00" align="right" nowrap>ペスカトーレ</td> <td bgcolor="#FFFFFF" valign="top" width="150">エビとあさりの漁師風パスタ</td> <td bgcolor="#FFFFFF" valign="top" width="200">ペスカトーレは漁師風という意味</td> </tr> </table>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/08/22 01:46
2019/08/22 02:02
退会済みユーザー
2019/08/22 02:13