Django搭建网站过程问题集锦

题前话:

Python的版本是2.7.6,Django版本是1.6

本人完全是Python新手,粗略看了下《The Django Book 2.0.chm》 以及《简明Python教程.chm》,准备从零开始,学习用Django搭建一个个人博客,现在此博文中记录下自己在这个过程中遇到的各种问题以及解决方法。

1.Django乱码问题

在用notepad写好html模板后,然后用Django引用,结果文中的中文全部乱码。即使我把html编码方式从ANSI换成了UTF8,依然无法解决问题。在网上搜索后,找到如下解决方案:

在settings.py中添加如下两行后,为方便,html文件换成了常用的ANSI:

FILE_CHARSET='gb18030'
DEFAULT_CHARSET='utf-8'

2.引用css、js、image等文件问题

在Django中引用静态文件真是一件头疼的问题,特别是对于习惯了普通htnl或php的程序员来说。普通的类似如下URL

<link rel="stylesheet" href="css/login.css" />

无法达到要求,因为它会到类似http://127.0.0.1:8000/css/lgoin.cs地址处寻找css文件。

解决方案,在settings.py确保django.contrib.staticfiles存在于INSTALLED_APPS中,然后在文件中已有添加如下两行

STATIC_URL = '/static/'
STATICFILES_DIRS=(
    os.path.join(BASE_DIR,r'blog/html/static').replace('\\','/'),
)

其中,STATIC_URL默认已经存在,只需要添加后面的static文件的文件夹路径即可。

随后在views.py文件中如下使用视图函数:

from blog.settings import STATIC_URL

def loginpage(request):
    static_url=STATIC_URL
    return render_to_response('html/login.html',locals())

然后再html模板中所有引用static文件的地方如下定义:

<link rel="stylesheet" href="{{static_url}}css/login.css" />

3.Django返回的时间格式问题

在使用Django模型时,定义了一个自动添加的时间格式

posttime=models.DateTimeField(auto_now=True)

然后发现在数据库中存储的格式是:“2013-12-23 19:04:12”,但是直接在模板中使用这个时间值时却变成了:“十二月23,2013,2:26p.m”

解决方案:在模板中使用时间时,写成如下的格式:

{{articletime|date:"Y-m-d H:i:s"}}

4.Django网站URL最后不能自动添加“/”

Django在URL后面自动添加上斜杠“/”需要中间件支持。打开settings.py,确保django.middleware.common.CommonMiddleware这个中间件存在于MIDDLEWARE_CLASSES的列表中即可

5.Django报错:CSRF verification failed. Request aborted

暂时的解决办法只有在settings.py文件中的MIDDLEWARE_CLASSES中删除django.middleware.csrf.CsrfViewMiddleware这个中间件。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值