Djangoのスタート
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 }}