Django機能


プロジェクト構造の作成


  • プロジェクト構造の作成
    snsの機能を考えると、次の3つくらいあります.
  • ユーザ管理(登録/登録/登録抹消会員)
  • 執筆
  • 友人の作成
    「書く」と「ユーザー」の2つの機能があります.
  • $ django-admin startapp user
    $ django-admin startapp tweet
    パイトステーションで上記のドラム鳴きを実行すると、tweetアプリケーションとuserアプリケーションが表示されます.
  • user apple-ユーザー管理(会員登録/抹消)
  • tweetアプリケーション-文書管理(書き込み、削除、修正、コメント)

  • プロジェクトの設定
    アプリケーションを作成したら、プロジェクトにDjangoに知らせるように通知する必要があります.
    初めて作成した「mySpartSNS」フォルダの「settings」.pyを変更します.

  • データベースとDjango ORM


    オブジェクト関係マッピング(ORM)は
    データベースは、SQL言語ではなく、オブジェクトブロックとして扱いやすくできます.つまり、クラスをデータベースとして作成して使用することができます.
    1.ユーザーモデルの作成
    Djangoは基本的にユーザーモデルを提供します.ユーザーの管理とログイン/ログアウトが実現しました.
    しかし勉強のために、自分で作ってDjangoが提供するモジュールを使います.

    ユーザー・アプリケーションのモデル.pyファイルに次のコードを入れます.
    #user/models.py
    from django.db import models
    
    
    # Create your models here.
    class UserModel(models.Model):
        class Meta:
            db_table = "my_user"
    
        username = models.CharField(max_length=20, null=False)
        password = models.CharField(max_length=256, null=False)
        bio = models.CharField(max_length=256, default='')
        created_at = models.DateTimeField(auto_now_add=True)
        updated_at = models.DateTimeField(auto_now=True)
    Class MetaはDB Tableに名前を指定するなどモデル情報を特定する役割を果たす.ここではテーブルの名前しか指定していません.
    1)Djangoモデルフィールドのタイプ
    djangoが提供するモデルを使用して、各要素にどのデータ型が含まれるかを指定し、各フィールドを制限できます.
  • 文字列:CharField、TextField
  • 日付/時刻:DateTimeField、DateField、TimeField
  • 数字:IntegerField、FloatField
  • ForeignKey
  • 2.作成したモデルをデータベースに入れる
    1)データベースの変更を示すコマンドmakemigration
    -障害のあるサーバを停止します.
    -端末に次のコードを追加
    ```Bash
    python manage.py makemigrations
    ```
    ![](https://media.vlpt.us/images/hijyun/post/d8c2052b-6b9a-4f11-a5ec-8c0b866d7e7d/image.png)
    장고가 데이터베이스가 생성된걸 알았다고 나온다.
    2) 변경된 데이터베이스를 적용시켜주는 migrate
    
    ```Bash
    python manage.py migrate
    ```

    作成したテーブルはよく生成されていることがわかります.

    Django Admin


    記事にあらかじめ構築された管理者ページを作成する機能.

    -admin機能について


    1. createsuperuser
    端末に次のコマンドを入力します.
    python manage.py createsuperuser

    パスワードを入力するとsuperuserが成功すると、管理者アカウントが作成されます.
    2.admin画面
    運転障害後
    http://127.0.0.1:8000/admin
    adminページにログインし、作成したばかりのアカウントを使用してログインします.

    上記のページが表示されます.
    3.登録型番
    ユーザーアプリケーションのadmin.次のコードをpyファイルに挿入します.
    from django.contrib import admin
    from .models import UserModel
    
    # Register your models here.
    admin.site.register(UserModel) # 이 코드가 나의 UserModel을 Admin에 추가 해 줍니다
    再びAdministrationページにアクセスすると、UserModelが入っていることがわかります.

    ユーザー管理とログイン


    スクリーンオフセット

  • テンプレートの作成(HTMLの合成)

    ドラムのテンプレート文法.htmlファイルの作成を続行したり、htmlファイルにPythonの機能を導入したりして、htmlドキュメントの重複作成を避けることができます.
  • 2)url-view-templateのリンク
  • ユーザ要求url→Chrome/Safariなどのインターネットブラウザ
  • mySpartasons受信要求→settings.pyが存在する最初のアプリケーションのURL.py
  • 登録url→urlsを検索します.pyに接続されたアプリケーションで作成されたURL.py
  • urlに登録されているビューを検索
  • テンプレートを作成したらurlとviewを作成する必要があります.
    まず、userアプリケーションでurlsを使用します.pyを作成します.ここではuser appに関連するurlがここで作成されます.
    userアプリのurlをmySpartSNSに伝えます.

    user appのviewsに次のコードを入力します.
    from django.shortcuts import render
    
    
    # Create your views here.
    def sign_up_view(request):
        return render(request, 'user/signup.html')
    
    
    def sign_in_view(request):
        return render(request, 'user/signin.html')
    user appのurlに次のコードを入力します.
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('sign-up/', views.sign_up_view, name='sign-up'),
        path('sign-in/', views.sign_in_view, name='sign-in'),
    ]

    会員加入機能

  • GET:値取得時のインターネット通信方法
    ex.主に画面の表示やデータの読み出しに使用される
  • POST:値の削除を送信、変更または要求する際に使用されるインターネット通信方法
  • GETとPOSTは同じURLでも方式が異なると全く異なる行為を招く.
    ユーザーアプリケーションのview.pyのsign up view関数にHTTPリクエスト方式を区別するコードを追加します.
    # user/views.py
    def sign_up_view(request):
        if request.method == 'GET': # GET 메서드로 요청이 들어 올 경우
            return render(request, 'user/signup.html')
        elif request.method == 'POST': # POST 메서드로 요청이 들어 올 경우
            
            return ""
    signup.htmlに入力し、<フォーム-画面のデータをサーバに送信するときに使用するタグ>タグ部分を変更します.

    メソッドにPostを入れ、actionでどのurlに渡すかを指定します.
    POSTデータの場合、{%csrf token%}を追加してデータセキュリティを保護できます.
    その後の見方.pyに次の内容を追加します.

    ログイン機能


    ≪セッション|Sessions|ldap≫:ユーザーの情報を保存できます.サーバとクライアントの間でリクエストと応答が発生したときに、同じ人がリクエストを発行することを確認します.

  • url、ビューの設定
    views.pyのsign in viewでPOSTを追加登録処理の関数として作成します.
    	```python

    user/views.py


    from django.http import HttpResponse
    def sign_in_view(request):
    if request.method == 'POST':
    return HttpResponse(「ログイン成功!」)
    elif request.method == 'GET':
    return render(request, 'user/signin.html')
    ```

  • signin.htmlのフォームラベルプロパティのクエリー


  • viewのログイン操作を完了
    userアプリケーションのsign in view関数にログイン機能を追加する
    # user/views.py
    def sign_in_view(request):
        if request.method == 'POST':
            username = request.POST.get('username', None)
              password = request.POST.get('password', None)
    
            return HttpResponse("로그인 성공!")
        elif request.method == 'GET':
            return render(request, 'user/signin.html')