美文网首页
Django基础(四)——学习笔记小知识

Django基础(四)——学习笔记小知识

作者: Yinag | 来源:发表于2017-08-05 10:35 被阅读0次

    这次做了一个比上次简单博客功能较全的学习笔记:

    1、可创建用户账户进行添加、删除主题,增添、编辑、删除条目;
    2、让用户拥有自己的数据,对用户的访问进行限制;每个用户拥有自己的主题,不让其他人查看;
    3、添加Django-bootstrap为其着色

    因为此“学习笔记”各个功能关联较多,在这里就不一 一 说明操作,用初步的模式展现页面,然后讲一些,在此过程中遇到的一些小知识,都是到处碰壁碰出来的。

    (一)页面展示


    所有主题列表 主题的条目 登录界面 注册界面

    (二)小知识
    1、某些页面,只允许已登录的用户访问,使用@login_required限制访问
    Django提供了装饰器@login_required,让我们能够轻松地实现这样的目标。装饰器是放在函数定义前面的命令,python在函数运行前,根据它来修改函数代码的行为。
    2、将数据关联到用户
    只需要将最高层的数据关联到用户,这样更低层的数据将自动关联到用户。例如,在项目“学习笔记”中,应用程序的最高层数据是主题,而所有条目都与特定主题相关联。只要每个主题都归属于特定用户,我们就能确定数据库中每个条目的所有者

    那么问题来了。。。。。。
    我们的模型Topic与用户的User是独立的,要使用一个外键进行关联。在这里我们是使用Django自带的模型User :from django.contrib.auth.models import User,里面有user属性 ,so,问题解决。

    修改模型Topic——models.py

    class Topic(models.Model):
         ......
         ......
         owner = models.ForeignKey(User)        建立到模型User外键关系
    

    然后,一定要记住进行数据库迁移,可用Django进行检验
    3、只允许用户访问自己的主题
    现在刚刚设置的外键起作用了,在views.py中进行判断

    def topics(request):
    .....
    topics = Topic.objects.filter(owner = request.user).order_by('date_added')
    

    单个主题的保护

    def topic(request):
    .......
    if topic.owner != request.user:
          raise Http404
    
    

    4、项目继承应用程序django-bootstrap
    安装步骤:
    a、命令行中输入pip install django-bootstrap3,在F:\PYthon\bianjiqi\Lib\site-packages(因为每个人的安装目录不同,但是对应的文件夹是对的~)中查看是否有下面两个文件夹,有则安装成功

    查看路径
    b、settings.py
    在INSTALLED_APPS中添加如下代码,在项目中包含应用程序django-bootstrap3
    INSTALLED_APPS = {
    .......
    ......
    # 第三方应用程序
    'bootstrap3'
    
    }
    

    在末尾添加如下代码:

    STATIC_URL = '/static/bootstrap/'   #静态文件的路径
    
    # LOGIN_URL = '/users/login/' 
    STATICFILES_DIRS = (                
     # STATICFILES_DIRS 告诉Django,首先到STATICFILES_DIRS 里面寻找静态文件,
    #其次再到各个app的static文件夹中寻找,有个弊端就是查找到第一个就停止
        os.path.join(BASE_DIR, 'static'),
    )
    BOOTSTRAPS = {
        'include_jquery': True,
    }
    

    相关文章

      网友评论

          本文标题:Django基础(四)——学习笔记小知识

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