这里对前面三节的知识做个简单的总结:
一、基本操作:
1.创建Django工程:
django-admin startproject [工程名]
2.创建app:
cd [工程名]
python manage.py startapp [app名称]
3.配置静态文件:
settings.py
注意:最后的那个逗号不能少
STATICFILES_DIRS=( os.path.join(BASE_DIR, "static"), )4.配置模板路径:
settings.py
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')] , 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]5.注释CSRF:
settings.py
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', ]
二、代码
1.定义路由规则:
urls.py
path('home/', home),对应函数
2.定义视图函数:
views.py
def func(request):注意这里必须带一个参数request
方法(以POST为例):
(1.方式
request.method == "POST":
(2.获取
(3.返回字符串request.POST.get("key", None)
return HttpResponse("字符串")(4.返回本地模板(第三个参数是字典,可选参数)
return render(request, "html文件路径", 可以再加一个参数)(5.返回URL(返回本地的时候,前面必须加上/)
return redirect("URL")
3.模板渲染:
特殊的模板语言
(1.取变量值(这里用的上面讲的render的第三个参数,取key对应的value)
<td>{{ 变量名 }}</td>(2.for循环
{% for row in user_list%} <tr> <td>{{ row.username }}</td> <td>{{ row.gender }}</td> <td>{{ row.email }}</td> </tr> {% endfor %}(3.一些特殊操作
return render(request, "1.html", { "Key1":["V1", "V2"]}, "Key2":{"k1":"v1", "k2":"v2"}) {{ Key1.0 }} 这里获取的就是V1 {{ Key1.1 }} 这里获取的就是V2 {{ Key2.k1 }} 这里获取的就是v1 {{ Key2.k2 }} 这里获取的就是v2(4.if-else用法
return render(request, "1.html", {"user":"me"}) {% if user %} <a>存在</a> {% if user == "me" %} <a>合适</a> {% else %} <a>存在但是不合适</a> {% endif %} {% else %} <a>不合适</a> {% endif %}
Django请求的生命周期:
->url对应关系(匹配) ->视图函数 ->返回给用户一个字符串
->url对应关系(匹配) ->视图函数 ->打开一个HTML文件,读取内容