Django——读取html并获取变量

这个知识点,看其他教程,没一个提到。但看完这个知识点后,感觉很重要,还是需要记录一下。


def getHtmlByFile(request):
    now = datetime.now()
    # 在Django的配置文件中配置了基本变量,这里用的BASE_DIR就是该项目所在的目录(settings.py文件里)
    file = os.path.join(settings.BASE_DIR, 'templates', 'index.html')
    with open(file) as f:
        html = f.read()
    # 从这一步其实明显可以看出,html中的变量获取,采用的是固定格式进行识别的,正则去匹配两个大括号,匹配到就获取里面的字符串,在去掉前后空格,取出来作为变量名。由于是重复造轮子的事,暂时不讨论。
    # 如果真是采用这种方式进行获取变量的话,一定需要注意,替换的是字符串,里面一个空格的差别都是不同字符串
    html = html.replace('{{ now }}', now.strftime('%Y-%M-%D'))
    return HttpResponse(html)


def getHtmlByLoader(request):
    now = datetime.now()
    # loader是django自带的读取html文件的方法,从方法名也可以知道,是去templates目录下去获取html文件的
    template = loader.get_template('index.html')
    # {}表示字典,key-value获取变量
    html = template.render({'now': now})
    return HttpResponse(html)


def getHtmlByRender(request):
    now = datetime.now()
    # 默认目录就是templates
    return render(request, 'index.html', {'now': now})


def getHtmlByRendertoresponse(request):
    now = datetime.now()
    # 查看源码可以发现,其实里面用的就是loader()
    return render_to_response('index.html', {'now': now})

其实我们正常使用,是使用的后面两种方法,但没有这一步步的解析,根本不知道内部的逻辑。

 

 

 

 

print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)

 

你可能感兴趣的:(Django)