zoukankan      html  css  js  c++  java
  • 个人页面展示

    个人页面展示:

    django后台管理:

    后台管理:
    	django admin 后台管理
    	xadmin 组件(有bug)--》公司
        
    -->添加用户数据,修改数据,删除数据
    
    如何用:
    	1.在应用中的admin.py注册要管理的表(模型类)
    	from app01 import models
        admin.site.register(models.xxx)  # xx : 表名(类)
        
    	2.登录后台管理---》超级用户(root权限)
    		createsuperuser
            
    注意: admin会自动给所有的注册了的模型表 加一个s后缀
    
    admin特性: admin会自动给注册了的模型表自动生成增删改查四条url
    
    eg: http://127.0.0.1:8000/admin/app01/userinfo/  查
    		http://127.0.0.1:8000/admin/app01/userinfo/3/change/ 改http://127.0.0.1:8000/admin/app01/userinfo/3/delete/ 删
    http://127.0.0.1:8000/admin/app01/userinfo/add/ 增
    
    admin数据录入的顺序:(以外键多的切入)
    	
    

    路由分发本质:

    路由分发本质:
    url(r'^index/',([
    	 url(r'^index_1/',([
               url(r'^index_1_1/',([
                    ],None,None))
             
    
    @property   #源码
    def urls(self):         
    	return self.get_urls(), 'admin', self.name
               r'^index_1_1/', None,None 
    
    
    

    数据暴露:

    数据暴露: 
       前端想要后端服务器上文件的数据,就必须要后端开一个接口,要手动开设后端资源,但是也将该文件夹下所有的文件都暴露了(***)
    
    #  eg:  谨慎使用
    1.	url(r'^app01/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT})
             
    # 2. settings内设置 :
            MEDIA_ROOT = os.path.join(BASE_DIR,'app01')
        
    # media配置  能够将用户上传的所有的文件都统一指定的文件夹下
    MEDIA_ROOT = os.path.join(BASE_DIR,'media')
    
    

    文件上传:

    用户文件上传文件:
    	1.settings内配置:
        MEDIA_ROOT = os.path.join(BASE_DIR,'media')
       media配置  能够将用户上传的所有的文件都统一指定的文件夹下
    
    	2.应用文件自动创建media文件夹,并把之前创建的avatar文件夹放入media文件夹下
    
    https://shazhenyu.blog.csdn.net/article/details/83104653
       python处理excel文件(优良博客)
    

    站点样式:

    #个人站点样式展示:
    
    from django.db.models.functions import TruncMonth 
    
    def site(request,username,**kwargs):
        user_obj = models.Userinfo.objects.filter(username=username).first()
        blog = user_obj.blog
        if not user_obj:  # 404页面
            return render(request,'error.html')
        # 有当前用户所有的文章
        article_list = models.Article.objects.filter(blog=blog)
    
        if kwargs:
            condition = kwargs.get('condition')
            param = kwargs.get('param')
            if condition == 'category':
                # 按照分类晒选
                article_list = article_list.filter(category_id=param)
            elif condition == 'tag':
                # 按照标签晒选
                article_list = article_list.filter(tags__id=param)
            else:
                year, month = param.split('-')
                article_list = article_list.filter(create_time__year=year,create_time__month=month)
        # 1.查询当前用户每一个分类及分类下的文章数
        category_list = models.Category.objects.filter(blog=blog).annotate(num=Count('article')).values_list('name','num','pk')
    
    
        # 2.查询当前用户每一个标签级标签下的文章数
        tag_list = models.Tag.objects.filter(blog=blog).annotate(num=Count('article')).values_list('name','num','pk')
    
        # 3.按照年月分组
        date_list = models.Article.objects.filter(blog=blog).annotate(month=TruncMonth('create_time')).values('month').annotate(num=Count('pk')).values_list('month','num')
    
    
        return render(request,'site.html',locals())
    
    
    
    # site.html 
    --->html页面展示:
    
            <div class="col-md-3">
                <div class="panel panel-primary">
                  <div class="panel-heading">
                    <h3 class="panel-title">文章分类</h3>
                  </div>
                  <div class="panel-body">
                      {% for category in category_list %}
                          <p><a href="/{{ username }}/category/{{ category.2 }}/">{{ category.0 }}({{ category.1 }})</a></p>
                      {% endfor %}
    
                  </div>
                </div>
                <div class="panel panel-danger">
                  <div class="panel-heading">
                    <h3 class="panel-title">文章标签</h3>
                  </div>
                  <div class="panel-body">
                        {% for tag in tag_list %}
                          <p><a href="/{{ username }}/tag/{{ tag.2 }}/">{{ tag.0 }}({{ tag.1 }})</a></p>
                      {% endfor %}
                  </div>
                </div>
                <div class="panel panel-warning">
                  <div class="panel-heading">
                    <h3 class="panel-title">日期归档</h3>
                  </div>
                  <div class="panel-body">
                        {% for date in date_list %}
                            <p><a href="/{{ username }}/archive/{{ date.0|date:'Y-m' }}/">{{ date.0|date:'Y年m月' }}({{ date.1 }})</a></p>
                        {% endfor %}
    
                  </div>
                </div>
            </div>
         <div class="col-md-9">
                {% for article in article_list %}
                    <div class="media">
                    <h4 class="media-heading"><a href="#">{{ article.title }}</a></h4>
                      <div class="media-left media-middle">
                        <a href="#">
                          <img class="media-object" src="/media/{{ article.blog.userinfo.avatar }}/" alt="..." height="60">
                        </a>
                      </div>
                      <div class="media-body">
                          {{ article.desc }}
                      </div>
    
                        <br>
                        <div class="pull-right">
                            <span>posted&nbsp;&nbsp;</span>
                            <span>@&nbsp;&nbsp;</span>
                            <span>{{ article.create_time|date:'Y-m-d' }}&nbsp;&nbsp;</span>
                            <span>{{ article.blog.userinfo.username }}&nbsp;&nbsp;</span>
    
                            <span><span class="glyphicon glyphicon-comment"></span>评论数({{ article.comment_num }})&nbsp;&nbsp;</span>
                            <span><span class="glyphicon glyphicon-thumbs-up"></span>点赞数({{ article.up_num }})</span>
                            <span><a href="#">编辑</a></span>
                        </div>
    
                    </div>
                    <hr>
                {% endfor %}
    
            </div>
        </div>
    </div>
    
  • 相关阅读:
    Protocol Buffer详解
    RPC进阶篇
    RPC基础篇
    测试控制器
    更加简洁的tableview
    storyboard中Unwind segue使用
    IOS开发Apache服务器搭建
    IOS多线程操作
    IOS使用Svn的trunk、branches、tag分别的侧重
    在设计IOSapp时为了代码的扩展性可可维护性需要遵守的原则
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12019218.html
Copyright © 2011-2022 走看看