美文网首页
django笔记

django笔记

作者: dandh | 来源:发表于2017-01-25 13:04 被阅读0次

    定时任务

    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即可

    相关文章

      网友评论

          本文标题:django笔记

          本文链接:https://www.haomeiwen.com/subject/yrbtittx.html