用python实现todolist_todolist项目

本文介绍了使用Django实现todolist项目时遇到的静态文件配置问题和数据库同步步骤。包括在settings.py中配置STATIC_URL,创建static目录存放静态文件,以及在模板中引用静态文件的方法。同时,文章还提到了Django版本差异导致的问题,以及如何解决Django 1.5与1.8之间的差异。此外,还涉及了models.py中数据模型的定义,数据库的配置以及在urls.py中的URL配置。
摘要由CSDN通过智能技术生成

url(r'^index/$', "todolist.views.index", name="index"),url里面的视图函数的地址要指定app在views先写好一个视图函数作为测试配置好之后同步数据库syncdb 然后runserver我把index.html文件及配置的css属性直接都放到了teplates里面,结果,没有显示css,js样式,还是配置一下静态文件妈的,配置一个静态文件花了好几个小时还弄不好,我日浪费了几个小时终于知道了一个深刻的道理,不能照搬照抄,要理解配置静态文件在网上找的终于完成了,和胡明星的settings不一样,所以不按照他的来,可能是版本问题卧槽,这么简单的问题纠结了几个小时,他的又不一定是正确的,干嘛非得按照他的来,其人1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等

2. 确保settings.py中的INSTALLED_APPS中包含django.contrib.staticfiles

3. 设置settings.py中的STATIC_URL的值为“/static/”

4. 在模版中使用{{ STATIC_URL }}作为静态文件路径前缀。比如纯在图片文件your_app/static/img/logo.png,那么应用代码为

5. 渲染模版的Context对象需要换成RequestContext,否则模版中无法引用到STATIC_URL对应的值。在app目录下创建static静态文件,在html前面加上{{ STATIC_URL }}就可以了,如此简单再来写models.py,也就是我要存放 的数据# coding:utf-8

fromdjango.dbimportmodels

classItem(models.Model):

content=models.CharField(max_length=200,verbose_name=u'事项内容')

is_done=models.BooleanField(default=False,verbose_name=u'事项状态')

put_date=models.DateTimeField(auto_now_add=True,verbose_name=u'发布时间')

classMeta:

verbose_name="待办事项"

verbose_name_plural=verbose_name

def__unicode__(self):

returnself.contentmeta里面写verbose_name是给models起一个名字verbose_name是起别名,而且还定义了# coding:utf-8然后又遇到了纠结的同步数据库的问题,一步一个坑,有人在旁边教就好了最后发现我的Django版本为1.5的时候 眼泪掉下来,视频上教学用的是1.5啊,靠日最后我才发现教程上教的Django版本是1.5而胡某星做项目的时候使用的是1.8卧槽,搞了半天,把静态文件的问题解决了,原来是版本的问题,fuck,浪费了一堆时间而且我的pip版本比较低,而且直接下载压缩包或使用pip easy_install安装Django还会出错,安装好Django后,Django会出现在python2.7里面的Lib目录下面的site-package吧Django-admin加入环境变量ok了有那么时候我特么就不想做了,日,用pycharm创建Django项目又有错于是就用了django-admin.py startproject xiangmudjango-admin.py startapp todo_listDjango1.8更好用,直接 把admin给设置好了不过设置少了很多,在url中需要自己引入fromdjango.conf.urls importinclude, url

fromdjango.contrib importadmin算了,重新开始:配置settings:静态文件和模板'DIRS':['templates'],配置appINSTALLED_APPS'todo_list',配置数据库:DATABASES ={

'default':{

'ENGINE':'django.db.backends.mysql',

'NAME':'tododb',

'USER':'root',

'PASSWORD':"root",

'HOST':'localhost',

'PORT':'3306',

}

}我擦,不是用pycharm创建的Django工程,还不支持tools run manage.py Task靠,又出错了应该是安装Django出了问题导致无法用pychram新建Django工程原来只是于Django工程的运行是这样的:

所以这里要对其进行配置。

选择菜单 [Run] --> [Edit Configurations...] 弹出如下对话框。

点左上角的 + 号,添加一个Debug配置,并如下配置:

Name: 这个随便起个名。Script: 一定得是manage.py,下面那项应该是runserver。

好!配置完成后,我们来试着Debug一下。

这样的问题虽然可以正常同步数据库,不过Superuser creation skipped due to not running in a TTY. You can run `manage.py createsuperuser` in your project to create one manually.报了一个这样的错误,说我不在终端运行,所以就跳过了,可以通过manage.py createsuperuser的方式创建超级管理员,所以我现在要重新安装Django卧槽,安装版本的时候,也就是Django,出现了一些问题,我选择忽略妈的,浪费了这么多的时间,这次我选择忽略这问题,因为它是一个小问题,但却耽搁了我太多的时间,我真的好sb在html只用静态文件的时候应该先在开头导入静态文件{% loadstaticfiles%}{% static'js/jquery.min.js'%}可以这种方式也可以这样写'/static/js/jquery.min.js'在html当中提交表单跳转页面提交信息

returnredirect(resolve_url('index'))可以通过redirect直接进行跳转,不过写的是绝对路径,所以这种相对要好一点returnredirect('/index/')效果同样urls.py当中需要导入相应模块fromdjango.conf.urlsimportinclude,url

fromdjango.contribimportadmin

{% foriteminitem_list%}在html里面这样写可以直接引用views.py里面的变量,注意是对应的页面{{}}这种形式也能访问view.py里面的变量{{ item.date|date:'Y-m-d H:i:s'}}这种筛选器的效果是打印出 年 月 日 小时 分钟 秒进行分页操作需要先导入分页模块,顺便导入了一些异常的函数,方便处理

fromdjango.core.paginatorimportPaginator,PageNotAnInteger,InvalidPage,EmptyPage

paginator=Paginator(item_list,2)这是分页函数的使用

defindex(request):

try:

item_list=Item.objects.all().order_by('-date')

paginator=Paginator(item_list,2)

try:

page=int(request.GET.get('page',1))

item_list=paginator.page(page) 通过paginator.page来取出page第几页的内容

except(PageNotAnInteger,InvalidPage,EmptyPage):

item_list=paginator.page(1)如果有错误就返回第一页的内容

exceptExceptionase:

printe

returnrender(request,'index.html',locals())

对不同的操作捕获不同的异常,先进行了排序,再进行了分页

分页操作还是有挺多的操作的

{% if item_list.has_previous %}

上一页

{% endif %}

第{{ item_list.number }}页/总共{{ item_list.paginator.num_pages }}页

{% if item_list.has_next %}

下一页

{% endif %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值