1、自定义页面
写一个显示当前时间的页面
views.py文件加一个使用模板的模块,整体内容为:
#coding=utf-8fromdjango.shortcutsimportrenderfromdjango.template.loaderimportget_templatefromdjango.templateimportContextimportdatetime#import sys#reload(sys)#sys.setdefaultencoding('cp936')#Create your views here.fromdjango.shortcutsimportrender,render_to_responsefromdjango.httpimportHttPResponse#Create your views here.a="测试"defhello(request):returnHttpResponse(a)defcurrent_datetime(request):
now=datetime.datetime.now()
t= get_template('current_datetime.html')
html= t.render(Context({'current_date': now}))returnHttpResponse(html)
其中current_datetime.html就是我们要使用的模板,可以自己添加好多效果,基本内容为
<!doctype html><htmllang="en"><head><metacharset="UTF-8"><metaname="Generator"content="EditPlus®"><metaname="Author"content=""><metaname="KeyWords"content=""><metaname="Description"content=""><title>Document</title></head><body>it is now {{ current_date }}</body></html>
其中current_date就是相当于一个数据转换的精确开关
urls.py内容自然也要添加模块绑定的语句
fromdjango.conf.urlsimportpatterns, include, urlfromdjango.contribimportadminfromviews.viewsimporthellofromviews.viewsimportcurrent_datetime
urlpatterns= patterns('',#Examples:#url(r'^$', 'MyDjango.views.home', name='home'),#url(r'^blog/', include('blog.urls')),#url(r'^admin/', include(admin.site.urls)),url(r'^hello/$', hello),
url(r'^current_datetime/$', current_datetime),
)
做完这些,浏览器里输入http://127.0.0.1:8000/current_datetime/,会报错
TemplateDoesNotExist at /current_datetime/
其中有句话是Using loader django.template.loaders.app_directories.Loader:
D:\Python34\lib\site-packages\django\contrib\admin\templates\current_datetime.html (File does not exist)
D:\Python34\lib\site-packages\django\contrib\auth\templates\current_datetime.html (File does not exist)
很明显模板文件应该放在这两个文件夹的其中一个下,于是移动文件
然后我们在settings.py里添加这么一句,必须放在base_dir后方:
TEMPLATE_DIRS=( os.path.join(BASE_DIR,'templates'),)
问题解决
如何定位basedir呢?我用的笨办法,setting.py中有一句配置:
'NAME': os.path.join(BASE_DIR,'db.sqlite3'),
我把db.sqlite3的目录给找出来了
应该还有别的办法,欢迎探讨,下期研究数据库或auth认证。