Djangoのスタート

10488 ワード

Djangoのインストール

pip3 install django==2.2
pip3 install pymysql
pip3 install mysqlclient
pip install pillow

プロジェクトの作成

#       manage.py
django-admin startproject     
#    app,   setting.py
django-admin startapp app1

# setting.py
INSTALLEND_APPS =[
	.....
	'app1',
	#   
	'app.apps.App1Config',
]
#     ,    
# urls.py
path('', views.index),
#     
python manage.py runserver 8000 #   

基本的なルーティングと配布

urlpatterns = [
    path('', views.index, name='index'),
    #           app1   urls  
    path('', include('app1.urls') 
    path('', include(('app1.urls','app1'),namespace='app1'))#     app1:
]

正規表現

.   
\r \d \D \w \W \s ( 、 ) ------------------------ * >=0 + >=1 {n} =n {n,m}m>= >=n ^ $

リクエストとレスポンス


Requestオブジェクト


キーワード
説明
method
要求を返す方式(GET
path
ページに戻るパス(ドメイン名を除く)
META
パッケージングリクエストヘッダのデータ(辞書タイプ、key大文字、下線接続)
REMOTE_ADDR
クライアントのIPアドレス
CONTENT_TYPE
要求本文のMIMEタイプ-text/html HTML-text/plain普通テキスト-application/json Json
GET
GET要求データをカプセル化するQueryDictオブジェクト
POST
POST要求データをカプセル化するQueryDictオブジェクト
FILES
アップロードファイルデータのカプセル化
COOKIES
パッケージリクエストのcookies、辞書のようなオブジェクト
session
辞書のような読み書きができるオブジェクト

HttpResponseオブジェクト

HttpResponse(
	content='   ',
    content_type='MIME  ',
    status='   ',
)

MIMEタイプ
説明する
text/html
HTML
text/plain
標準テキスト
application/json
Json
ステータスコード
説明する
200
リクエスト成功
302
一時リダイレクト
400
クライアント要求構文エラー
403
サーバがリクエストを拒否
404
対応するページが見つかりません
500
サーバ内部エラー

JsonResponseオブジェクト

from django,http import JsonResponse

def json_handler(request):
    return JsonResponse(
    	{'edu':'CSDN'},
        {'course':'Python'},
        json_dumps_params={"ensure_ascii":False}
		#         
    )

リダイレクト

#   redirect
from django.shortcuts import redirect

def re(request):
    return redirect('/user')
#  
	return redirect(reverse('user:index'))

テンプレートレンダリング


テンプレート呼び出し

index.html
     
def index(request):
    return render(request, "index.html")

テンプレートパラメータ

def index(request);
	context={
        "user":"name1",
        "pwd":"pass1"
    }
    return render(request,"index.html",context)

テンプレート構文

{#      #}
{% for foo in foo_list%}

{% endfor%}

{#    #}
{% if   %}
.....
{% elif   %}
...
{% else %}
....
{% endif%}

{#    #}
{% url "namespace:name "     %}{#     #}

テンプレートフィルタ


フィルタの組み合わせ:
{変数|フィルタ1|フィルタ2}}
キーワード
説明
safe
HTMLエスケープ禁止
length
長さ
date
日付(Y-m-d H:i:s)
default
デフォルト(変数default:デフォルト)
upper
大文字に変換
lower
小文字を書く

テンプレートの継承

{% extends "       " %}

{# block        #}
{% block       %}
{% endblock %}

{#          #}
{{ block.supper }}