博客系统:
1 表关系
2 登录验证(基于ajax与用户认证组件)
3 注册    (基于ajax与forms组件)
4 首页文章列表
5 个人站点页面设计6 点赞与踩灭
7 评论

  

(1)FileField与ImageField

models.py
class userinfo:
    avatar = models.FileField(upload_to='avatars/', default="/avatars/default.png")
views.py
avatar=request.FILES.get("avatar_img") 
UserInfo.objects.create_user(username=user,password=pwd,email=email,avatar=avatar)
Django会在项目的根目录创建avatars文件夹,将上传文件下载到该文件夹中,avatar字段保存的是文件的相对路径。 

(2)设置上传文件存储文件夹

if 配置 MEDIA_ROOT=os.path.join(BASE_DIR,"blog","media")
Django会MEDIA_ROOT下创建avatars文件夹,将上传文件下载到该文件夹中,avatar字段保存的是文件的相对路径。 

(3)配置用户上传文件可访问

url.py
# media 配置
url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
settings.py
MEDIA_URL="/media/"     
浏览器可以直接访问http://127.0.0.1:8000/media/avatars/lufei.jpg,即我们的用户上传文件

admin:对模型表进行增删改查
admin.py
admin.site.register(UserInfo)
http://127.0.0.1:8000/admin/blog/category/
http://127.0.0.1:8000/admin/blog/category/add/
http://127.0.0.1:8000/admin/blog/category/4/change/
http://127.0.0.1:8000/admin/blog/category/4/delete/

表与表之间的关系:一对多,多对多,一对一 
book
  ID title              publish   
  1   go          苹果出版社 
  2   python          苹果出版社  
  3   linux           香蕉出版社 
   
   
book
  ID title             publish_id     
  1   go               1  
  2   python            1
  3   linux             1
   
Publish
    ID     name           email      addr     charcher
    1       苹果出版社        123     beijing     egon
         
一旦确定是一对多的关系,就得创建关联字段
publish_id
Foreignkey publish_id Refference Publish(ID)
#################################################################

四    分组

1-------
book
  ID title         publish   
  1   go          苹果出版社 
  2   python      苹果出版社  
  3   linux       香蕉出版社 
   
select count(*),publish from Book group by publish
2-------
book
  ID title    publish_id     
  1   go           1  
  2   python       1
  3   linux        2
   
Publish
    ID     name           email   addr    charcher
    1   苹果出版社        123     beijing   egon
    2   橘子出版社        123     beijing   alex
     
# 查询每一个出版社对应的书籍个数  
select count("title") from Book group by publish_id 
# 查询每一个出版社的名字以及对应的书籍个数
select * from book left join publish on book.publish_id=Publish.ID
  ID title    publish_id  ID   name             email   addr    charcher
  1   go           1      1   苹果出版社        123     beijing   egon
  2   python       1      1   苹果出版社        123     beijing   egon
  3   linux        2      2   橘子出版社        123     beijing   alex
select Publish.name,count(*) from book left join publish on book.publish_id=Publish.ID group by Publish.ID,Publish.name
ORM分组查询:(annotate():按annotate前面的select字段进行group by)(关键词:每一个
     
    多表:
    Publish.objects.all().annotate(c=Count(book)).values("name","c")
    Book.objects.all().annotate(c=Count(authors)).values("title","c")
    Author.objects.all().annotate(x=Max(book__prcie))
    单表:
    Book.objects.all().values("publish").annotate(Count("title"))
'''
1.
ret=Article.objects.all().values("user").annotate(c=Count("title")).values("user_id","c")
SELECT "blog_article"."user_id", COUNT("blog_article"."title") AS "c" FROM "blog_article" GROUP BY "blog_article"."user_id"
     
2.     
ret=Category.objects.filter(blog=blog).annotate(c=Count("article")).values("title","c")
SELECT "blog_category"."title", COUNT("blog_article"."nid") AS "c"
FROM "blog_category" LEFT OUTER JOIN "blog_article"
ON ("blog_category"."nid" = "blog_article"."category_id")
WHERE "blog_category"."blog_id" = 1
GROUP BY "blog_category"."nid", "blog_category"."title", "blog_category"."blog_id"
'''
#####################################################################

文章日期归档

1            
   MySQL:    date_formatsqlite:   striftime 

2 extra         
   models.Article.objects.extra(select={"standard_time":"strftime('%%Y-%%m-%%d',create_time)"}).values("standard_time","nid","title")   

3 ORM分组查询(单表)

转载于:https://www.cnblogs.com/shangdelu/p/9064191.html

S20_DAY20--课堂笔记相关推荐

  1. 管理系统中计算机应用第四章重点,管理系统中计算机应用课堂笔记第四章(4)...

    管理系统中计算机应用课堂笔记第四章(4) 分类:自考 | 更新时间:2016-07-08| 来源:转载 这个分析和抽象工作可分以下三步进行: 5.2.1数据流程图的绘制 数据流程图既是对原系统进行分析 ...

  2. AI公开课:19.04.10颜水成—360副总裁《人工智能:观察与实践》课堂笔记以及个人感悟—191017再次更新

    AI公开课:19.04.10颜水成-360副总裁<人工智能:观察与实践>课堂笔记以及个人感悟 导读       颜水成,新加坡国立大学副教授.360集团副总裁.人工智能研究院院长. 颜水成 ...

  3. AI公开课:19.05.16漆远-蚂蚁金服集团CF《金融智能的深度与温度》课堂笔记以及个人感悟—191017再次更新

    AI公开课:19.05.16漆远-蚂蚁金服集团CF<金融智能的深度与温度>课堂笔记以及个人感悟-191017再次更新 导读         漆远,麻省理工学院博士后,39岁被评为美国普渡大 ...

  4. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(二)

    AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(二) 导读      讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...

  5. AI英特尔杯公开课:2019.06.27在线直播《研究生人工智能创新大赛—AI赋能,创新引领》课堂笔记和感悟(一)

    AI英特尔杯公开课:2019.06.27在线直播<研究生人工智能创新大赛-AI赋能,创新引领>课堂笔记和感悟(一) 导读      讲解总体不错,知识点比较基础,适合入门,各种主流框架都有 ...

  6. AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟

    AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读        浣军博士,汉族,1975年出生于江苏苏州, ...

  7. AI公开课:19.05.15施尧耘-达摩院量子实验室主任《量子计算:前景与挑战》课堂笔记以及个人感悟

    AI公开课:19.05.15施尧耘-达摩院量子实验室主任<量子计算:前景与挑战>课堂笔记以及个人感悟 导读         施尧耘1997年本科毕业于北京大学,后在普林斯顿大学取得计算机科 ...

  8. AI公开课:19.05.22 Aya Soffer—IBM AI Tech VP《Advanced, scalable, and trusted AI 》课堂笔记以及个人感悟

    AI公开课:19.05.22 Aya Soffer-IBM AI Tech VP<Advanced, scalable, and trusted AI >课堂笔记以及个人感悟 Introd ...

  9. AI公开课:19.04.18俞益洲—深睿医疗CS《计算机视觉的应用与落地》课堂笔记以及个人感悟

    AI公开课:19.04.18俞益洲-深睿医疗CS<计算机视觉的应用与落地>课堂笔记以及个人感悟 导读       俞益洲,现为深睿医疗联合创始人.首席科学家(Chief Scientist ...

  10. AI公开课:19.04.17杨松帆—好未来AI Lab负责人《为人工智能时代打造一个AI老师》课堂笔记以及个人感悟

    AI公开课:19.04.17杨松帆-好未来AI Lab负责人<为人工智能时代打造一个AI老师>课堂笔记以及个人感悟 导读 杨松帆,现为好未来教育集团人工智能实验室负责人.曾任FaceThi ...

最新文章

  1. 利用ESP32驱动控制步进电机驱动器:MS2806
  2. c语言左移15位,关于c语言中左移右移运算符的问题
  3. 舰娘 服务器 维护时间,《舰娘Collection》停止运营公告
  4. 初学者指南:如何为Red Hat Process Automation Manager配置电子邮件服务任务
  5. linux shell脚本 删除指定目录下文件夹(可指定文件夹名、时间)
  6. Springcloud服务如何在Eureka安全优雅的下线
  7. windows java路径问题_java中路径的问题
  8. Python3 捕捉异常
  9. 用glew,glfw,FreeImag实现opengl画图-第五课 摄像机
  10. 三维偏序:CDQ分治
  11. Linux下更改Python的软链接
  12. 如何移动visio2010连接线上的文本
  13. HTML学习的第三天
  14. pppd详解_Linux 使用pppd和ppp程序进行3G/4G拨号
  15. snmp协议与snmp++
  16. USACO 2.1.3 Ordered Fractions
  17. 移动硬盘安装ubuntu后问题记录:windows 开机进入grub界面
  18. OData介绍 (SAP)
  19. 桌面虚拟化各厂家解决方案
  20. [洛谷P3758][TJOI2017]可乐

热门文章

  1. R语言初级教程: NA、Inf、NaN、NULL 特殊值
  2. tidyverse —— readxl包
  3. Oracle如何实现利用实体化视图提高查询性能
  4. process.nextTick
  5. C#添加二维码带加密带logo
  6. Mediator(中介者)-对象行为型模式
  7. Oracle执行计划 讲解(二) .
  8. [saiku] 配置saiku实时展现查询数据
  9. 聊聊V8引擎的垃圾回收
  10. jQuery UI 拖动(Draggable) - 还原位置