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

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

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

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Python

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

Q&A

解決済

1回答

1185閲覧

Djangoで複数ページの移動ができません。

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Python

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

0グッド

0クリップ

投稿2021/06/23 06:02

前提・実現したいこと

PythonDjango3超入門という書籍を読みながら、webアプリケーション開発をしようとしています。
Djangoで複数ページの移動を含むサイトが作成できません。

「複数ページの移動」という項目(書籍P.78)で、次の①~③の指示が出ています。

①「templates」フォルダ内の「hello」フォルダにあるindex.htmlを以下のように書き換えてください。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>{{title}}</title> 6</head> 7<body> 8 <h1>{{title}}</h1> 9 <p>{{msg}}</p> 10 <p><a href="{% url goto %}">{{goto}}</a></p> 11</body> 12</html>

②「hello」フォルダ内のviews.pyを開いて、以下のように書き換えましょう。

python

1from django.shortcuts import render 2from django.http import HttpResponse 3 4def index(request): 5 params = { 6 'title':'Hello/Index', 7 'msg':'これは、サンプルで作ったページです。', 8 'goto':'next', 9 } 10 return render(request, 'hello/index.html', params) 11 12def next(request): 13 params = { 14 'title':'Hello/Next', 15 'msg':'これは、もう1つのページです。' 16 'goto':'index', 17 } 18 return render(request, 'hello/index.html', params)

③「hello」フォルダ内のurls.pyを開いて、urlpatternsの文を以下のように修正しましょう。

python

1from django.urls import path 2from . import views 3 4urlpatterns = [ 5 path('', views.index, name='index'), 6 path('next', views.next, name='next'), 7]

indexは今まで通り/hello/に、nextは/hello/next/にそれぞれ割り当てておきました。
修正したら、実際にhttp://localhost:8000/hello/にアクセスしてみましょう。
最初のページにある「next」をクリックするとnextページに、「index」をクリックするとindexページに移動します。

発生している問題・エラーメッセージ

前述の②を保存したり、python manage.py runserverを実行したりすると、最後数行に

from . import views File "C:\Users\kanae\Desktop\django_app\hello\views.py", line 16 'goto':'index', ^ SyntaxError: invalid syntax

と表示されます。

ちなみに、表示されたエラーメッセージ全体は以下の通りです。

Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\threading.py", line 954, in _bootstrap_inner self.run() File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\threading.py", line 892, in run self._target(*self._args, **self._kwargs) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\utils\autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\core\management\commands\runserver.py", line 117, in inner_run self.check(display_num_errors=True) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\core\management\base.py", line 392, in check all_issues = self._run_checks( File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\core\management\base.py", line 382, in _run_checks return checks.run_checks(**kwargs) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks new_errors = check(app_configs=app_configs) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config return check_resolver(resolver) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver return check_method() File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\urls\resolvers.py", line 407, in check for pattern in self.url_patterns: File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\urls\resolvers.py", line 588, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\urls\resolvers.py", line 581, in urlconf_module return import_module(self.urlconf_name) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 855, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "C:\Users\kanae\Desktop\django_app\django_app\urls.py", line 20, in <module> path('hello/', include('hello.urls')), File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\site-packages\django\urls\conf.py", line 34, in include urlconf_module = import_module(urlconf_module) File "C:\Users\kanae\AppData\Local\Programs\Python\Python39-32\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 680, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 855, in exec_module File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed File "C:\Users\kanae\Desktop\django_app\hello\urls.py", line 2, in <module> from . import views File "C:\Users\kanae\Desktop\django_app\hello\views.py", line 16 'goto':'index', ^ SyntaxError: invalid syntax

書籍に書いてある内容をそのまま実行したのですが、何が問題なのでしょうか?

試したこと

書籍の正誤表を確認しましたが、該当するページに関する記載はありませんでした。
近いところで躓いた人のブログを見つけましたが、エラーとなった場所が違っていました。

補足情報(FW/ツールのバージョンなど)

WindowsでVScodeを使用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1 'msg':'これは、もう1つのページです。'

この行の最後にカンマ「,」が足りません。

書籍になかったとしたら、誤植です。指摘してあげるとよろこばれるでしょう。

エラーは「SyntaxError: invalid syntax」(文法間違え)ですから、その行もしくは数行前までくらいをよく調べればわかったはずです。

投稿2021/06/23 06:39

TakaiY

総合スコア12799

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

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

退会済みユーザー

退会済みユーザー

2021/06/23 09:10

ありがとうございます、できました! 書籍の誤植ではなく、私のミスでした…。申し訳ありません。 今後、矢印の箇所だけでなく、その少し前も確認するようにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問