urls

    # 个人站点url   一个试图实现http://127.0.0.1:8000/xjj/cate/xjj的mysql/  与 http://127.0.0.1:8000/xjj/ 的跳转re_path(r'^(?P<username>\w+)/$',views.per_site),re_path(r'^(?P<username>\w+)/(?P<style>tag|cate|date)/(?P<info>.*)/$',views.per_site),

  有名分组?P<>,将参数转变为实参,per_site(request,username), per_site(request,username,“tag|cate|date”,info)。

  re_path中一个()即为一个参数


views(功能实现面板信息跳转对应的文章,与默认页面全部文章显示)

from django.db.models import Count
def per_site(request,username,**kwargs):res = UserInfo.objects.filter(username=username).first()if res:# http: // 127.0.0.1: 8000 / zzw / cate / python /if kwargs:style = kwargs['style']info = kwargs['info']if style == 'cate':art_list = Article.objects.filter(user_id=res.pk).filter(category__title=info)elif style == 'tag':art_list = Article.objects.filter(user_id=res.pk).filter(tag__title=info)else:# 调整时区 settings USE_TZ = Falseyear,month = info.split('-')print(year,month)art_list = Article.objects.filter(user_id=res.pk).filter(create_time__year=year,create_time__month=month)print(art_list)else:art_list = Article.objects.filter(user_id=res.pk)  # 显示站点内的所有文章# 显示站点内每个分类对应的文章数cate_list = Category.objects.filter(blog_id=res.pk).annotate(c=Count('article__category_id')).values('title','c')# 显示站点内每个分类对应的文章数tag_list = Tag.objects.filter(blog_id=res.pk).annotate(c=Count('article2tag__tag_id')).values('title','c')#显示每月的博客数date_list = Article.objects.filter(user_id=res.pk).extra({'date':"date_format(create_time,'%%Y-%%m')"}).values('date').annotate(c=Count('nid')).values('date','c')return render(request,'per_site.html',locals())else:return render(request,'no_user.html')

为了避免再开一条路由,巧妙利用**kwargs(如果没有参数,就正常执行,有参数即按字典传入函数,{'style':‘cate’,'info':xxx})

ORM中extra自建sql语句的用法


前端:略

<div class="col-md-9"><h4>文章摘要</h4>{% for art in art_list %}<div><a href="" ><span>{{ art.title }}</span></a><p >{{ art.desc }}</p><p class="pull-right " ><span>{{ art.create_time|date:'Y-m-d H:m' }}</span>  #过滤器的使用<span>{{ art.user.username }}</span></p></div><hr style="clear: both">{% endfor %}

  


重点:

1、ORM中的跨表查询

正向查询:关联属性(放在‘多’一方)在A表中  A-->B           正向按字段(models—class中生成的关联字段)

反向查询:B-->A                                            反向按表名小写

2、在过滤时间时,注意setting中的市区设置 USE-TZ = Flase

3、extra  在ORM中自定义mysql中的搜索方式date_formart

4、路由re_path正则匹配

转载于:https://www.cnblogs.com/zhuzhiwei-2019/p/10754131.html

Django 项目试炼blog(5) -- 个人站点的搭建相关推荐

  1. Django 项目试炼blog(10) --补充 滑动验证码

    首先安装一个需要用到的模块 pip install social-auth-app-django 安装完后在终端输入pip list会看到 social-auth-app-django 3.1.0 s ...

  2. linux下使用nohup挂后台启动django项目

    django在linux上运行,一般在xshell远程连接后,是通过如下命令启动服务: python manage.py runserver 0.0.0.0:8000 但是这样有个弊端,窗口关闭服务就 ...

  3. pyCharm 社区版搭建Django项目环境

    pyCharm 社区版搭建Django项目环境 文章目录 pyCharm 社区版搭建Django项目环境 前言 1.安装Django 2.创建Django Demo 项目 3. 创建应用: 4.启动 ...

  4. centos7根据端口查进程_记录一次CentOs7下Nginx+WSGI部署Django项目(超详细)

    记录一次Django部署的文章,不是很熟悉Linux系统,踩了不少坑,本篇文章相当于是一个总结,我会在本文中详细介绍,部署单个Django项目和多个Django的方法,如读者有更好的方法,欢迎留言一起 ...

  5. python django开发工具_利用pyCharm编辑器创建Django项目开发环境-python开发工具第一篇...

    [前置说明] 1.django环境与python对应关系: Django version Python versions 1.11 2.7, 3.4, 3.5, 3.6, 3.7 (added in ...

  6. Django项目开发——002架构梳理

    python三个开发框架: django tornado flask MVC #开源高级web开发框架,使用python #快速开发: ORM 构建数据库,方法简洁. #内置应用:admin,auth ...

  7. Django入门-2:创建第一个Django项目

    创建Django项目 命令 django-admin startproject test1 打开 Linux 或 MacOS 的 Terminal (终端)直接在 终端中输入这些命令(不是 pytho ...

  8. 前端Vue+后端Django项目创建以及自动部署流程

    所有的环境都安装完了之后,接下来就要创建项目了,完整的项目开发流程是由开发的同学先写完代码,然后交付给运维的同学部署到测试和生产环境.DevOps可以让整个流程自动化,开发的同学只需要稍微会一些工具就 ...

  9. 使用pytest对django项目单元测试

    2019独角兽企业重金招聘Python工程师标准>>> 背景 使用django开发了个人博客,欲单元测试,后遍寻网络,然相关资料甚少,遂成此文,望对汝有所助 环境 pytest py ...

  10. 创建Django项目和模型(创建工程、子应用、设置pycharm环境、使用Django进行数据库开发的步骤)

    1.创建Django项目 文档:Writing your first Django app, part 1 | Django documentation | Django 步骤 创建Django项目 ...

最新文章

  1. 求1-10000所有的素数
  2. android网页打开摄像头,在android上,用WEB页面打开手机摄像头
  3. 深度学习(二)theano学习笔记(1)环境搭建
  4. Access导入MDB文件
  5. Equipment download scenario2
  6. RAID冗余技术的介绍AND实现
  7. 洛谷P4718 【模板】Pollard-Rho算法
  8. java 不执行构造函数_函数作为构造函数执行,但不作为函数执行
  9. 考前建议:好好看一下 《网络工程师考试案例动手实验营》附录A
  10. 机器学习笔记八之机器学习系统设计
  11. 定义一个空切片_全面解读Python高级特性切片
  12. VBA 自动关闭 弹出的对话框 + VBA错误捕捉
  13. Switch离线升级教程【自用】
  14. Skype、MSN/Live Messenger、Lync全面整合
  15. php 双竖线,范数介绍,数字两边双竖线
  16. CSDN周赛52期及53期浅析
  17. html5实现canvas迷宫游戏,HTML5/Canvas/JS 迷宫生成动画
  18. C++算法之归并排序
  19. STM32F4+DP83848以太网通信指南系列(一):知识储备
  20. python全栈学习笔记

热门文章

  1. gtk_init参数传递过程(草稿)
  2. 连范例都不跑,大哥你怎么知道你的代码正确?
  3. 博客访问量,有没有可能是系统所为?
  4. LINUX下载编译ccrtp(未成功)
  5. java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
  6. 编译OpenJDK12:freetypeScaler.obj error LINK2019 无法解析的外部符号
  7. centos 卸载docker_Docker (一) 安装
  8. windows 内核对象核心知识点
  9. linux通过yum安装vim,linux/centos系统如何使用yum安装vi/vim?(转)
  10. python4.2_python4.2参数传入