[Django] Project Initial Setting

13669 ワード

Line Amigosプロジェクトにより、プロジェクトの初期設定の重要性がわかりました.
参考文献による模倣は慣習的に行われているが、一つ一つ意味を丁寧に理解しているわけではないので、FLOプロジェクトの前に書いて整理しておく.

gitignoreの作成


プロジェクトの進行を通して、以下のことを学びました.
Gitにソースコードを共有しますが、共有すべきでないコードと共有したくないコードをファイルに追加する必要があります.後で書くmy_settings.py공유하지 말아야 할 것と命名すべきだと思います.これはsecret keyと暗号化とトークンのための特定のアルゴリズムが命名されているため、会社のセキュリティの問題を引き起こす可能性があります.
しかし驚くべきことに、セキュリティに関するファイルがアップロードされると、Github側にセキュリティの問題があり、警告(?)を受けます.これは筆者が正確に知っていることです.いいえ、このように整理してはいけません.
逆に、データベースに入るcsvファイルは、なぜ?!(なぜコンサルティングで終わるのか…)

project_name/settings.pyの作成


大いに
  • 追加が必要な部分(my settings.pyは通常、後で作成および追加されますが、ファイルの説明に従ってください)
  • 注釈処理部
  • に分かれる.
    from my_settings import DATABASES, SECRET_KEY, ALGORITHM
    SECRET_KEY = SECRET_KEY
    ALGORITHM = ALGORITHM
    まず、corsの処理を支援するためにdjango-cors-headersをインストールします.
    pip install django-cors-headers
    生成されたapp+24579142を追加
    未使用のappコメント:corsheadersadmincsrf
    INSTALLED_APPS = [
        'user', # 추가된 app_name
        'product', # 추가된 app_name
        'review', # 추가된 app_name
        'order', # 추가된 app_name
        'corsheaders', # cors를 처리하는데 도움을 줄 app
    #    'django.contrib.admin',
    #    'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    
    必要なMIDDLEWAREを追加し、未使用のMIDDLEWAREにコメント
    MIDDLEWARE = [
        'corsheaders.middleware.CorsMiddleware', # 추가 된 MIDDLEWARE
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
    #    'django.middleware.csrf.CsrfViewMiddleware',
    #    'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    DATABASESはmy settingspyに移行したので.
    DATABASES = DATABASES
    必要な部分ではありませんが、私たちのDBに適用されるauthをソウルに変更するために
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'Asia/Seoul'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = False
    グリコファイルの最後の下部に追加するコード
    #REMOVE_APPEND_SLASH_WARNING
    APPEND_SLASH = False
    
    ##CORS
    CORS_ORIGIN_ALLOW_ALL=True
    CORS_ALLOW_CREDENTIALS = True
    
    CORS_ALLOW_METHODS = (
        'DELETE',
        'GET',
        'OPTIONS',
        'PATCH',
        'POST',
        'PUT',
    )
    
    CORS_ALLOW_HEADERS = (
        'accept',
        'accept-encoding',
        'authorization',
        'content-type',
        'dnt',
        'origin',
        'user-agent',
        'x-csrftoken',
        'x-requested-with',
    )
    Djangoで「Optional」Query文を実際に記述する方法を知りたい場合は、最後に次のコードを追加します.

    my_settings.pyの作成


    gitignoreにgitで共有したくないファイルが含まれていることを知っているかもしれません.
    私たちが使っているDB
    前のプロジェクトでは、표준 시간대DATABASESSECRET_KEYALGORITHMを隠しました.
    from my_settings import DATABASES, SECRET_KEY, ALGORITHM
    通常、外部API(SNS登録、AWS接続情報など)もmy settingsである.pyに記入する

    urls.pyの作成


    urls.pyは各appのビューです.py
    <project_name/urls.py>
    lineamigos/urls.py
    
    from django.urls import path, include
    
    urlpatterns = [
        path('user', include('user.urls')),
        path('product',include('product.urls')),
        path('review',include('review.urls')),
        path('order',include('order.urls'))
    ]
    
    
    <app_name/urls.py>
    user/urls.py
    
    from django.urls import path
    from user.views  import SignUpView, SignInView
    
    urlpatterns = [
        path('/signup', SignUpView.as_view()),
        path('/signin', SignInView.as_view()),
    ]
    
    project_name/urls.pyに書かれた各アプリケーションのパスは、/と書かないのがRESTful API会議で正しいことを学びました.
    逆にapp name/urlsです.pyの各アプリケーションで、ビューのパスの前にpath('/name', name_of_view.as_view()),

    Requitrement.txtの作成


    チームプロジェクトを行うことは、チームメンバーと同じ環境で作業することを意味します.プロジェクトにインストールされているライブラリを特定して追加します.
    pip freeze # 현재 로컬환경에 설치된 파이썬 모듈 정보를 보는 명령어
    pip freeze > requirements.txt # pip freeze 의 결과를 requirements.txt에 기록하는 것
    

    MySQLのインストールとデータベースの作成


    MySQLのインストール

    brew install mysql
    
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    

    MySQL設定

    mysql.server start
    プリファレンスを開始するには、次の手順に従います.
    mysql_secure_installation
  • 暗号複雑度検査プロセス(n)
  • パスワード
  • の入力と確認
  • 匿名ユーザ(y)
  • を削除する.
  • リモート接続は許可されていませんか?(y)
  • 削除
  • テストDB(n)
  • previlegeテーブル(y)
  • を再ロードするかどうか
    mysql.server start
    mysql -u root -p
    上記のコマンドを入力すると、mysqlを使用するためにルートパスワードを入力できます.
  • -uオプションMySQLに接続するユーザーのIDを指定します.ここではrootユーザーとして接続されています.
  • -pオプションは、パスワードを入力することを示します.
  • mysqlに接続した後

    create database <NAME_of_DB( usually'project_name'> character set utf8mb4 collate utf8mb4_general_ci;

    Djangoの接続

    pip install mysqlclient

    Django、MySQL接続の検証


    manage.pyが存在するパスで
    python manage.py migrate