Создание блога с CookieCutter-Django и развертыванием его в Heroku (серия 9 частей)
Теперь давайте создадим новое приложение Django. Мы будем называть наше новое приложение Main.
$ django-admin startapp main
Как только приложение будет создано, нам придется переместить приложение в каталоге Blog_tutorial вместе с приложением пользователей по умолчанию и настроить наши приложения. Давайте теперь создадим эти файлы и настроем их для нашего приложения.
Наш блог_tutorial/main/apps.py настроен следующим образом:
# blog_tutorial/main/apps.py from django.apps import AppConfig from django.utils.translation import gettext_lazy as _ class MainConfig(AppConfig): name = 'blog_tutorial.main' verbose_name = _("Main") def ready(self): try: pass except ImportError: pass
И наш блог_tutorial/main/urls.py имеет пустую переменную urlpatterns. Это потому, что мы будем определять все наши URL -адреса в файле config/urls.py.
# blog_tutorial/main/urls.py app_name = "main" urlpatterns = [ ]
И не забудьте добавить наше приложение в local_apps в конфигурации/настройки/base.py
# config/settings/base.py ... LOCAL_APPS = [ "blog_tutorial.users.apps.UsersConfig", # Your stuff: custom apps go here "blog_tutorial.main.apps.MainConfig", ]
Затем давайте применим наши миграции и запустим наше приложение.
$ python manage.py migrate Operations to perform: Apply all migrations: account, admin, auth, contenttypes, sessions, sites, socialaccount, users Running migrations: Applying contenttypes.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0001_initial... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying users.0001_initial... OK Applying account.0001_initial... OK Applying account.0002_email_max_length... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying sessions.0001_initial... OK Applying sites.0001_initial... OK Applying sites.0002_alter_domain_unique... OK Applying sites.0003_set_site_domain_and_name... OK Applying socialaccount.0001_initial... OK Applying socialaccount.0002_token_max_lengths... OK Applying socialaccount.0003_extra_data_default_dict... OK $ python manage.py runserver Watching for file changes with StatReloader INFO 2020-07-21 17:21:50,781 autoreload 66844 4497481152 Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). July 21, 2020 - 17:21:51 Django version 3.0.8, using settings 'config.settings.local' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Откройте свой браузер и отправляйтесь через https://127.0.0.1:800 или https://localhost: 8000 Чтобы увидеть, что вы только что создали, используя фреймворк CookieCutter-Django.
Хорошо, пока. Спасибо, что послушали мой разговор о Теде.
Шутя.
Вы можете проверить официальные документы CookieCutter-Django, чтобы получить больше информации о функциях фреймворка. https://cookiecutter-django.readthedocs.io/en/latest/developing-locally.html
В этой главе мы установили виртуальную среду для разделения нашего проекта в нашей среде разработки, установил зависимости проекта по умолчанию CookieCutter-Django, создал базу данных PostgreSQL, создал приложение Django и добавил необходимую конфигурацию в нашем приложении и настройки в Сделайте наш блог Django.
Создание блога с CookieCutter-Django и развертыванием его в Heroku (серия 9 частей)
Оригинал: “https://dev.to/highcenburg/creating-a-blog-with-cookiecutter-django-deploying-it-to-heroku-creating-the-app-for-the-blog-330b”