定时任务
app
-management
--commonds
---init.py
---_private.py
---my_task.py
# my_task.py
from django.core.management.base import BaseCommand
class Command(BaseCommand):
# 必须实现的方法
def handle(self, *args, **options):
...
# sttings.py
CRONJOBS = [
('*/20 * * * *', 'django.core.management.call_command', ['my_task'], {}, '>/var/log/my_task.log'),
]
models.py
related_name属性使我们可以命名另模型回溯(或者是反查)到本模型对象的关系;
django-uuslug是一个很方便的将中文转化成拼音 slug 的插件。通过使用django-uuslug,可以确保 slug 是唯一的,并且都是 unicode 编码的。
通过一个内嵌类 "class Meta" 给你的 model 定义元数据
User.objects.get(username='admin')方法允许你从数据库取回一个单独的对象; all_posts = Post.objects.all() 取所有; Post.objects.filter(publish__year=2015) 筛选; Post.objects.filter(publish__year=2015).exclude(title__startswith='Why') 排除; Post.objects.order_by('title') 排序; 还可以自定义manager; 这是一个帖子详情view。这个view使用year,month,day以及post参数来获取一个发布的帖子通过给予的slug和日期。请注意,当我们创建Post model的时候,我们在slgu字段上添加了unique_for_date参数。这样我们可以确保只有一个帖子会带有给予的slug,因此,我们能取回单独的帖子通过日期和slug。在这个详情view中,我们通过使用get_object_or_404()快捷方法来检索期望的帖子。这个函数能取回匹配给予的参数的对象,或者返回一个HTTP 404异常当没有匹配的对象找到。最后,我们使用render()快捷方法来使用template去渲染取回的帖子。 请注意,我们通过使用strftime()方法来保证个位数的月份和日期需要带上0来构建URL.我们将会在我们的templates中使用get_absolute_url()方法。
urls.py
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<post>[-\w]+)/$', views.post_detail, name='post_detail'),
templates
Django模版加法: {{ value|add:10}} value=5,则返回15 Django模版减法: {{value|add:-10}} value=5,则返回-5,这个比较好理解,减法就是加一个负数 Django模版乘法: {% widthratio 5 1 100 %} 上面的代码表示:5/1 *100,返回500,widthratio需要三个参数,它会使用 参数1/参数2*参数3,所以要进行乘法的话,就将参数2=1即可 Django模版除法 {% widthratio 5 100 1 %} 上面的代码表示:5/100*1,返回0.05,只需要将第三个参数设置为1即可
网友评论