个人页面展示

目录

  • 个人页面展示:

    • django后台管理:
    • 路由分发本质:
    • 数据暴露:
    • 文件上传:

个人页面展示:

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>

原文地址:https://www.cnblogs.com/shaozheng/p/12019218.html

时间: 2024-08-30 03:48:04

个人页面展示的相关文章

Node.js静态页面展示例子2

例程下载:https://files.cnblogs.com/files/xiandedanteng/nodejsStaticHtmlSample.rar 页面效果: Html页面代码(注意用文本编辑器如Editplus3保存文件时要指定编码为UTF-8,否则容易出现乱码): <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="

utf-8页面展示 gbk编码的js,gbk中有中文

index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

老生常谈-从输入url到页面展示到底发生了什么

阅读目录 1.输入地址 2.浏览器查找域名的 IP 地址 3.浏览器向 web 服务器发送一个 HTTP 请求 4.服务器的永久重定向响应 5.浏览器跟踪重定向地址 6.服务器处理请求 7.服务器返回一个 HTTP 响应 8.浏览器显示 HTML 9.浏览器发送请求获取嵌入在 HTML 中的资源(如图片.音频.视频.CSS.JS等等) 刚开始写这篇文章还是挺纠结的,因为网上搜索"从输入url到页面展示到底发生了什么",你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候

老生常谈-从输入url到页面展示到底发生了什么2

阅读目录 1.输入地址 2.浏览器查找域名的 IP 地址 3.浏览器向 web 服务器发送一个 HTTP 请求 4.服务器的永久重定向响应 5.浏览器跟踪重定向地址 6.服务器处理请求 7.服务器返回一个 HTTP 响应 8.浏览器显示 HTML 9.浏览器发送请求获取嵌入在 HTML 中的资源(如图片.音频.视频.CSS.JS等等) 刚开始写这篇文章还是挺纠结的,因为网上搜索"从输入url到页面展示到底发生了什么",你可以搜到一大堆的资料.而且面试这道题基本是必考题,二月份面试的时候

树状结构Java模型、层级关系Java模型、上下级关系Java模型与html页面展示

树状结构Java模型.层级关系Java模型.上下级关系Java模型与html页面展示 一.业务原型:公司的组织结构.传销关系网 二.数据库模型 很简单,创建 id 与 pid 关系即可.(pid:parent_id) 三.Java模型 (我们把这张网撒在html的一张表里.其实用ul来展示会简单N多,自己思考为什么LZ会选择放在表里) private class Table {        private Long id; // 当前对象的id         private int x; /

js动画 无缝轮播 进度条 文字页面展示 div弹窗遮罩效果

1.无缝轮播 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="ser

js实现多个滑动门在同一个页面展示效果

多个滑动门在同一个页面展示,在工作小组里面,一直是一个让人比较纠结的问题~学习库里面有一个技术同事5年前给封装的控件,大家就一直在用复用那个. 最近项目里面用到的这个效果非常多,每次都要调用那个js控件,还得按规则匹配相应的id,真心觉得麻烦,就在想,为嘛不自己写一个可以通用的~ 于是,就有了下面这个脚本效果: js: <script type="text/javascript" > var arrayObj = [' ',' ',' ',' ',' ',' ',' '];

Django在web页面展示linux服务器的文本内容

在web页面展示linux服务器的内容 django项目名称:minicms /home/username/minicms 项目中app名称:news /home/username/minicms/news 相关文件:/tmp/abc.txt # cat /tmp/abc.txt  公司公网IP地址: 183.54.15.11 服务器内存: 192.168.1.1 total used free shared buffers cached Mem:           742        69

从输入 URL 到页面展示,到底发生了什么

从输入 URL 到页面展示,到底发生了什么 1.输入URL 当我们开始在浏览器中输入网址的时候,浏览器其实就已经在智能的匹配可能得 url 了,他会从历史记录,书签等地方,找到已经输入的字符串可能对应的 url,然后给出智能提示,让你可以补全url地址.对于 google的chrome 的浏览器,他甚至会直接从缓存中把网页展示出来,就是说,你还没有按下 enter,页面就出来了 2.浏览器查找域名IP地址 1.请求一旦发起,浏览器首先要做的事情就是解析这个域名,一般来说,浏览器会首先查看本地硬盘

SSM框架整合(实现从数据库到页面展示)

SSM框架整合(实现从数据库到页面展示) 首先创建一个spring-web项目,然后需要配置环境dtd文件的引入,环境配置,jar包引入. 首先让我来看一下ssm的基本项目配件.(代码实现) 1.首先编写web.xml文件. <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x