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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

4888閲覧

HTMLで画面分割したときのhtmlファイルの配置場所

vibrato

総合スコア52

Django

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2017/12/05 02:31

編集2017/12/05 06:21

Pyhon Django でwebページの制作にチャレンジしています。
ただwebページの制作自体が初めてなので、
Django特有の質問になるのか、HTML全般での質問になるのかも自分では判断できないのですが、
お答えいただけたら幸いです。

http://localhost:8000/test/sample
で正常に動作していたページを分割2画面にしようと挑戦中です。

sample.htmlを親ページとして

HTML

1<!--- [sample.html] ---> 2<frameset cols="300,*"> 3 <frame src="sample_a.html"> 4 <frame src="sample_b.html">

このように記述すると
http://localhost:8000/test/sample/sample_a.html
http://localhost:8000/test/sample/sample_b.html

これ見つからないよエラーが起きました。
sampleフォルダを作ってその中に入れてみたりなど複数回チャレンジしましたが、どのパターンもエラーしてしましました;
[sample.html]から相対的に見ると[sample_a.html][sample_b.html]はどこのディレクトリに配置するのが正しいのでしょうか?
宜しくお願い致します。

回答ありがとうございます
追記

http://localhost:8000/test/
を参照しているディレクトリに新たに/sample/ディレクトリを置き、
その中に[sample_a.html]を配置させた
http://localhost:8000/test/sample/sample_a.html】
↑これは表示されます。

下記は元質問と同じになりますが、
http://localhost:8000/test/
を参照しているディレクトリに親ページ[sample.html]を配置した状態で

<frameset>タグを利用し[sample_a.html]を表示させようとすると 【http://localhost:8000/test/sample/sample_a.html】 ↑全く同じですが、これが見当たらないと言われてしまいます。

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

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

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

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

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

回答2

0

kokardy様のアドバイス通りに記述した結果無事表示できました!
(ただ、一度2画面に分割されると、分割予定の無いページも継続して2画面のままになってしまったので、その解決法を追って別の質問として投稿させていただこうと考えております。)

###kokardy様に教えていただいた解決法で修正したコード

html

1<frameset cols="500,*"> 2 <frame src="sample_a"> 3 <frame src="sample_b">

python

1# test/urls.py 2 url(r'^sample/$', views.sample, name='sample'), 3 url(r'^sample/sample_a$', views.sample_a, name='sample_a'), 4 url(r'^sample/sample_b$', views.sample_a, name='sample_b'),

Python

1# test/views 2def sample(request): 3 return render(request, 'test/sample.html') 4def sample_a(request): 5 return render(request, 'test/sample_static/sample_a.html') 6def sample_b(request): 7 return render(request, 'test/sample_static/sample_b.html')

###HTML配置場所

C:.
├─project
│..└─__pycache__
├─templates
│..└─test
│.....├─【sample.html】
│.....└─sample_static
│........├【sample_a.html】
│........└【sample_b.html】
├─test
│..├─migrations
│..│..└─__pycache__
│..└─__pycache__
└─static
....├─css
....├─icon
....│..└─icon
....└─jquery

投稿2017/12/12 15:50

vibrato

総合スコア52

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

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

0

ベストアンサー

設定が質問からすべて読み取れないのですが、
http://localhost:8000/test/sampleは
sample.htmlというテンプレートファイルを表示するようになっていて、
http://localhost:8000/test/sample/sample_a.html
http://localhost:8000/test/sample/sample_b.html
はテンプレートではない静的なhtmlファイルだと予想しています。

http://localhost:8000/test/
を参照しているディレクトリに新たに/sample_static/ディレクトリを置き、
http://localhost:8000/test/sample_static/sample_a.html】を
http://localhost:8000/test/sampleから見た相対パス(または絶対パスで)
frameタグを書いてみてください。

投稿2017/12/06 16:26

kokardy

総合スコア781

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

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

vibrato

2017/12/11 17:06 編集

回答ありがとうございます。 >>テンプレートではない静的なhtmlファイルだと予想しています。 こちらの助言といただいた回答から以下のパターンを試しました。 C:. ├─project │..└─__pycache__ ├─templates │..└─test │.....├─sample.html │.....└─sample_static │........├【sample_a.html : Page not found (404)】 │........└【sample_b.html : Page not found (404)】 ├─test │..├─migrations │..│..└─__pycache__ │..└─__pycache__ └─static ....├─css ....├─icon ....│..└─icon ....├─jquery ....├─【sample_a.html : 表示されたけど…】 ....└─【sample_b.html : 表示されたけど…】 staticディレクトリに入れることで表示はされたのですが、 テンプレートとして認識されていないようで、 {% extends "○○○.html" %} {% block ○○○ %} {% endblock ○○○ %} これらが、ただの文字列としてページに表示されてしまっています。 テンプレートとして認識させる方法はないものでしょうか? 表示された段階で新たな知識を手に入れることができましたので感謝いたします。
vibrato

2017/12/06 18:10

treeがずれてしまっていますね… 上方の sample_a.html とsample_b.html は template/test/sample_static/sample_a.html template/test/sample_static/sample_b.html にあります。
vibrato

2017/12/06 18:11

下方の sample_a.html とsample_b.html は static/sample_a.html static/sample_b.html にあります
vibrato

2017/12/06 18:17

treeのずれ修正を行いました ドットはスペースに読み替えていただければ幸いです。
kokardy

2017/12/09 03:28

テンプレートとして表示したいなら viewを定義して、url.pyにもかかないとダメです。 その場合は、staticのディレクトリではなく、templatesの中にテンプレートファイルを入れる必要があります。
vibrato

2017/12/12 15:24 編集

返信が遅くなってしまい申し訳ありません。 >>viewを定義して、url.pyにもかかないとダメです。 どちらもありますが、いまのところ結果は同じです。 ちなみに上記のtreeのように/sample_static/を配置し sample.htmlには(sample_aの方だけ記入します) <frameset cols="500,*"> <frame src="sample_static/sample_a.html"> ↑このように記述してあり、その結果 Page not found (404) Request Method:GET Request URL:http://localhost:8000/test/sample/sample_static/sample_a.html The current path, test/sample/sample_static/sample_a.html, didn't match any of these. このように出ます。 test/views.pyは def sample_a(request): ....return render(request, 'test/sample_static/sample_a.html') このように記述 test/urls.pyは url(r'^sample/sample_static/sample_a$', views.sample_a, name='sample_a'), url(r'^sample/sample_a$', views.sample_a, name='sample_a'), url(r'^sample_a$', views.sample_a, name='sample_a'), こんな感じでいろいろ試しましたがダメでした、 よろしければそれぞれどのファイルにどのように書けばテンプレートとして読み込めるか教えていただけると嬉しいです。是非よろしくお願い致します。
kokardy

2017/12/12 15:19

それだとurls.pyに設定されてるパスはsample_aで sample_a.htmlではないですね。 r'^sample/sample_a.html$'と書くか、 frameのsrcのsample_a.htmlをsample_aにしましょう。
vibrato

2017/12/12 15:56

おかげさまで解決致しました!修正したコードを書くために自己解決投稿を行いましたので、そちらにも書かせていただいたのですが、 「一度2画面に分割されると、分割予定の無いページも継続して2画面のまま」になってしまいました。 自身で解決させるために挑戦しますが、どうして解決しない場合には新たに質問を立てさせていただこうと考えております。もし見かけた際にはまた是非よろしくお願い致します。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問