前提・実現したいこと
Djangoで複数のアプリを持つ場合に、アプリを指定して起動しようとしています。
具体的には以下の階層構造を持つ場合に、例えば「blog」アプリを立ち上げようとしたいと言うことです。
サンプルプログラムは、『Djangoビギナーズブック』のサンプルファイルのうち、
7章ブログアプリケーションの作成/helloworld.com
を対象としています。
. └── helloworld.com ├── blog │ ├── __init__.py │ ├── ... ├── contact │ ├── __init__.py ├── db.sqlite3 ├── diaries │ ├── __init__.py │ ├── ... ├── manage.py ├── myprofile │ ├── __init__.py │ ├── ... ├── project │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── reviews │ ├── __init__.py │ ├── admin.py │ ├── ... └── videos ├── __init__.py ├── ...
発生している問題・エラーメッセージ
以下のように manage.py
を実行すると、複数あるアプリの内、「myprofile」の内容だけが
http://127.0.0.1:8000/で表示される状態です。
「blog」や「diaries」といった個別のアプリを起動するにはどうすればいいのでしょうか。
$ python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). September 26, 2020 - 11:15:00 Django version 3.1.1, using settings 'project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
該当のソースコード
manage.py
python
1#!/usr/bin/env python 2"""Django's command-line utility for administrative tasks.""" 3import os 4import sys 5 6 7def main(): 8 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') 9 try: 10 from django.core.management import execute_from_command_line 11 except ImportError as exc: 12 raise ImportError( 13 "Couldn't import Django. Are you sure it's installed and " 14 "available on your PYTHONPATH environment variable? Did you " 15 "forget to activate a virtual environment?" 16 ) from exc 17 execute_from_command_line(sys.argv) 18 19 20if __name__ == '__main__': 21 main() 22
projectフォルダ内のurls.py
python
1"""project URL Configuration 2 3The `urlpatterns` list routes URLs to views. For more information please see: 4 https://docs.djangoproject.com/en/2.2/topics/http/urls/ 5Examples: 6Function views 7 1. Add an import: from my_app import views 8 2. Add a URL to urlpatterns: path('', views.home, name='home') 9Class-based views 10 1. Add an import: from other_app.views import Home 11 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12Including another URLconf 13 1. Import the include() function: from django.urls import include, path 14 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) 15""" 16from django.conf import settings 17from django.conf.urls.static import static 18from django.contrib import admin 19from django.urls import path, include 20 21 22urlpatterns = [ 23 path('admin/', admin.site.urls), 24 path('diaries/', include('diaries.urls')), 25 path('reviews/', include('reviews.urls')), 26 path('contact/', include('contact.urls')), 27 path('videos/', include('videos.urls')), 28 path('blog/', include('blog.urls')), 29 path('', include('myprofile.urls')), 30] 31 32urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
試したこと
Djangoのアプリ起動に関してググった中では以下のコマンドしか見つけられず、複数のアプリをプロジェクト内に持つ場合の切り替えについての記事や説明を見つけられていない状態です。
$ python manage.py runserver
補足情報(FW/ツールのバージョンなど)
Django version 3.1.1
Python 3.7.4
回答1件
あなたの回答
tips
プレビュー