day17-内容整理以及模板渲染补充
一、内容整理
1、创建Django工程
django-admin startproject 工程名
2、创建app
cd 工程名 python mange.py startapp app名
3、静态文件
project.settings.py =>STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static"), ]
4、模板路劲
DIRS ==> [os.path.join(BASE_DIR,'templates'),]
5、settings中
middlerware #注释csrf
6、定义路由规则
project下的url.py login -->函数名
7、定义视图函数
app下的views.py
def func(request): #request.method GET /POST方法 #http:127.0.0.1:8000/home?nid=123&name=zhangqigao #request.GET.get('',None) #获取get请求发来的数据 #request.POST.get('',None) #获取post请求发来的数据 # return HttpResponse("字符串") # return render(request,"HTML模板路径") # return redirect('/只能填写url') #url前面的斜杠 / 代表ip+端口,本地的话就是:127.0.0.1:8000,所以不能省略
二、模板渲染
2.1、特殊模板语言
def func(request): return render(request,"index.html",{'current_user':"zhangqigao"}) #这边传入字典 index.html内容如下: <div>{{current_user}}</div> #这边获取值,{{key值}}
2.2、For循环
def func(request): return render(request,"index.html",{'current_user':"zhangqigao",'user_list':['alex','sgg']}) #这边传入字典 index.html内容如下: <ul> {% for row in user_list %} <li>{{row}}</li> {% ednfor %} </ul>
2.3、索引
def func(request): return render(request,"index.html",{'current_user':"zhangqigao",'user_list':['alex','sgg'],'user_dict':{'k1':'v1','k2':'v2'}}) #这边传入字典 index.html的内容如下: #列表的根据索引去值方法 <a>{{user_list.0}}</a> <a>{{user_list.1}}</a> #字典根据索引取值方法 <a>{{user_dict.k1}}</a> <a>{{user_dict.k2}}</a>
2.4、if条件判断
def func(request): return render(request,"index.html",{'current_user':"zhangqigao",'age':18,'user_list':['alex','sgg'],'user_dict':{'k1':'v1','k2':'v2'}}) #这边传入字典 index.html内容如下: #嵌套if....elif...else....: {% if age %} #age为18,所以为true <a>有年龄</a> {% if age > 16 %} #比较大小 <a>老男人</a> {% elif age >18 %} <a>小男人</a> {% else %} <a>小鲜肉</a> {% endif %} {% else %} <a>无年龄</a> {% endif %} #if语句嵌套在for循环当中: <ul> {% for row in user_list %} {% if row == "zhangqigao" %} <li>{{row}}</li> {% endif %} {% endfor %} </ul>