一、显示应用主界面
1、在项目urls文件的urlpatterns中加入"url(r'^$','contract.views.desktop')",如下:
urlpatterns = patterns('',
...
url(r'^$','contract.views.desktop'),
...
)
在浏览器中键入"localhost",显示“ViewDoesNotExist”错误。
2、在"d:\mysite\contract\views.py"文件中加入“desktop”函数,如下:
def desktop(request):
return render_to_response('desktop.html',{})
注意通过“from django.shortcuts import render,render_to_response“导入render_to_response.
在浏览器中键入"localhost",显示“TemplateDoesNotExist”错误。
3、新建"D:\mysite\contract\templates"目录,并在该目录下新建"desktop.html"文件,内容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>合同管理</title>
</head>
<body>
<h1>欢迎使用合同管理系统</h1>
</body>
</html>
在浏览器中键入"localhost",继续显示“TemplateDoesNotExist”错误。这里的原因是django搜索模板的路径未包括“D:\mysite\contract\templates”目录。通过在项目的"settings.py"中安装"contract"应用,即在"INSTALLED_APPS"中增加一项"contract",django就会增加一个新的模板搜索路径项。
INSTALLED_APPS = (
...
'contract',
...
)
在浏览器中键入"localhost",显示“UnicodeDecodeError”错误。这是因为django缺省将模板文件认为是"utf-8"解码,而“desktop.html”文件的实际编码为"GB2312"。
4、在项目的"settings.py"文件末尾增加"FILE_CHARSET='GB2312'"。在浏览器中键入"localhost",显示系统主页面。
二、登录
1、打开"d:\mysite\contract\views.py"文件,在文件开始出添加"from django.contrib.auth.decorators import login_required";
2、在"desktop"视图函数前添加"@login_required"装饰函数。在浏览器中键入"localhost",显示"A server error occurred. Please contact the administrator"错误。这是因为,当你使用django缺省的权限控制组件时,需要同步数据库,所以需要运行"manage.py syncdb",在此过程中建立超级用户"admin".
3、在浏览器中键入"localhost",显示"Page not found(accounts/login)"错误信息。在项目urls.py的urlpatterns中加入"url(r'^accounts/login/$', 'django.contrib.auth.views.login'),"。再在在浏览器中键入"localhost",显示"TemplateDoesNotExist"错误.
4、根据提示建立"D:\mysite\contract\templates\registration"目录,并在此目录下新建"login.html"文件,内容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>登录</title>
</head>
<body>
<h1>用户登录</h1>
<form action="" method="post">
<label for="username">User name:</label>
<input type="text" name="username" value="" id="username">
<label for="password">Password:</label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="login" />
<input type="hidden" name="next" value="{{ next|escape }}" />
</form>
</html>