目录
django 基础
render 原理
代码:
def ab_render(request):
temp = Template("<h1>{
{user_dict}}{
{user_dict.username}}{
{user_dict.password}}</h1>")
user_dict = Context({'user_dict':{'username':'jason','password':123}})
res = temp.render(user_dict)
return HttpResponse(res)
视图函数并一定就是函数 也可以是类
FBV:基于函数的视图
CBV:基于类的视图
CBV基本写法
from django.views import View
class MyLogin(View):
def get(self,request):
return render(request,'login.html')
def post(self,request):
return HttpResponse('我是类里面的post方法')
urls 文件里的urls
url(r'^login/',views.MyLogin.as_view())
作用:
朝着login提交get请求会自动执行Mylogin里面的fet方法
而提交post请求也会自动执行Mylogin里面的post方法
研究源码的突破口
url(r'^login/',views.MyLogin.as_view())
怎么看源码:
猜想
as_view要么是类里面定义的普通函数 @staticmethod
要么是类里面定义的绑定给类的方法 @classmethod
看源码发现是绑定给类的方法
看源码不需要每一句都看懂 只看自己能够看得懂
步骤如图:
第一步
第二步 从上至下一次查看
第三步:
django settings源码
django暴露给用户一个可以自定义的配置
但是内部也有默认的配置
用户配置了就用用户的 用户没有配就用默认的
模板的语法符号
{
{}} 变量相关
{% %} 逻辑相关
模板层之模板传值
python基本数据类型全部支持传递给html文件
函数
类
函数和对象会自动加括号
# 模板语法不支持传参
对象