文档来自:https://www.cnblogs.com/LiCheng-/p/6920900.html

  1. 流程

  2. 基本配置
  3. 路由系统
  4. 视图view
  5. 模板
  6. Model
  7. 中间件
  8. Form
  9. 认证系统
  10. CSRF
  11. 分页
  12. Cookie
  13. Seesion
  14. 缓存
  15. 序列化
  16. 信号
  17. admin

一共四个部分:模型,视图,模板,控制器

Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:

M 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

T 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

V 代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。

python manage.py startapp appname  (新建 app)

python manage.py makemigrations  (显示并记录所有数据的改动)

python manage.py migrate  (将改动更新到数据库)

python manage.py createsuperuser  (创建超级管理员)

b、静态文件添加       在template中

# 首先在项目根目录下创建static目录

# 接着在settings.py 文件下添加

STATIC_URL = '/static/' # 默认已添加,使用静态文件时的前缀
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'), #行末的逗号不能漏
)

# 这样在template中就可以导入static目录下的静态文件啦

# 例:
<script src="/static/jquery-1.12.4.js"></script>

settings配置

2. 命名组(Named groups)

在上面的简单例子中,并没有使用正则表达式分组,在更高级的用法中,很有可能使用正则分组来匹配URL并且将分组值通过参数传递给view函数。

在Python的正则表达式中,分组的语法是 (?P<name>pattern), name表示分组名,pattern表示一些匹配正则.

四、 Django Views(视图函数)

http请求中产生两个核心对象:

  http请求:HttpRequest对象

  http响应:HttpResponse对象

2. HttpResponse对象

对于HttpRequest对象来说,是由django自动创建的,但是,HttpResponse对象就必须我们自己创建。每个view请求处理方法必须返回一个HttpResponse对象。

在HttpResponse对象上扩展的常用方法:

  • 页面渲染:render(推荐),render_to_response,
  • 页面跳转:redirect
  • locals:   可以直接将对应视图函数中所有的变量传给模板 

2.  模板语言

模板中也有自己的语言,该语言可以实现数据展示

  • {{ item }}
  • {% for item in item_list %}  <a>{{ item }}</a>  {% endfor %}
      forloop.counter
      forloop.first
      forloop.last
  • {% if ordered_warranty %}  {% else %} {% endif %}
  • 母板:{% block title %}{% endblock %}
    子板:{% extends "base.html" %}
       {% block title %}{% endblock %}
  • 帮助方法:
    {{ item.event_start|date:"Y-m-d H:i:s"}}
    {{ bio|truncatewords:"30" }}
    {{ my_list|first|upper }}
    {{ name|lower }}

小知识点:在模板语言中字典数据类型的取值是通过dict.xxx而不是dict[xxx]

关系对象映射(Object Relational Mapping,简称ORM)。

jango 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法。

在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件,

在上一节中讲到,什么是框架,什么Django框架   但是忘记保存了,但还是那句话,当你记住它的时候,你会发现生活中都充满它的影子

models

ok 模型类。models,  数据库的基础,写一些字段,关联表的东西,这个类继承与models和Model

它有一个Meta类和一个unicode方法   修改默认生成表名,输出字段

还有汉化表名,字段名    verbose_name_plural    verbose_name

当创建好了models类   接下就是映射数据库表

makemigrations post   上面说明   生成迁移文件

migrate   执行迁移文件将改动的数据映射到数据库中

好像没了 有再补充吧 这是模型类

admin

后台站点,管理数据库的,我是管理数据库的,但是你要给我数据库我才能管理。而我要做的就是把数据库表单给你

十七、admin

django amdin是django提供的一个后台管理页面,改管理页面提供完善的html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查,而使用django admin 则需要以下步骤:

  • 创建后台管理员
  • 配置url
  • 注册和配置django admin后台管理页面

注:不建议新手经常使用admin,会形成依赖,核心的是model模块的操作!

1、创建后台管理员

python manage.py createsuperuser

2、配置后台管理url(默认已配)

url(r '^admin/' , include(admin.site.urls))

3、注册和配置django admin 后台管理页面

  

admin.site.register(models.UserType)

还有一些小的细节,就是弄成中文的形式,models和admin字段,表单名是链接的。唯一要改的是再setting中修改它的中文形式

admin先这样吧,等有问题的查找扩展

富文本编辑器https://www.cnblogs.com/ianduin/p/7732983.html

接下来学的是富文本编辑器,CHEDITOR_UPLOAD_PATH的作用是设定你通过ckeditor所上传的文件的存放目录。内容上编辑的东西,因为涉及到文件的上传所有会有更多的配置修改模型类content的字段为富文本相关的就是一个小插件吧

Django之分页功能

https://www.cnblogs.com/kongzhagen/p/6640975.html

Django提供了一个新的类来帮助你管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。

这个链接里边举了几个例子,需要的时候可以去研究一下

过滤器

https://www.cnblogs.com/zknublx/p/5965036.html

记下来,省得每次google
过滤器,变量的显示形式的改变

在应用包下创建全局上下文

  很尴尬我忘了有什么作用了

https://www.cnblogs.com/qiaoqianshitou/articles/9620439.html

模板要在上下文中渲染。
上下文是django.template.Context的实例。django.template.RequestContext是Django提供的一个子类。
django.template.RequestContext默认为模板上下文添加很多变量。使用render()快捷方式时,如果没有明确传入其他上下文,默认使用RequesetContext。

缓存原理

https://www.cnblogs.com/zuoshoushizi/p/7850281.html

由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回。

Django中提供了6种缓存方式:

  • 开发调试
  • 内存
  • 文件
  • 数据库
  • Memcache缓存(python-memcached模块)
  • Memcache缓存(pylibmc模块)

首先介绍一下我使用的Django全文检索逻辑了,在网上查看了各种资料发现,Django上一般用到的检索引擎基本上就是whoosh,sphinx,xapian了。后面的sphinx,xapian大家都可以在百度百科上找到相应的词条,基本都是使用了很大的项目使用的,毕竟是基于C写的,效率上肯定不必多言了,但是我这个杀鸡的活还用不到这两把牛刀了,这次我使用的是第一个whoosh引擎了,为什么使用这个呢?

因为whoosh是一个纯python实现的全文搜索组件。

主要特性

  • 敏捷的API(Pythonic API)。
  • 纯python实现,无二进制包。程序不会莫名其妙的崩溃。
  • 按字段进行索引。
  • 索引和搜索都非常的快 -- 是目前最快的纯python全文搜索引擎。
  • 良好的构架,评分模块/分词模块/存储模块等各个模块都是可插拔的。
  • 功能强大的查询语言(通过pyparsing实现功能)。
  • 纯python实现的拼写检查(目前唯一的纯python拼写检查实现)
pip install whoosh
pip install jieba
pip install django-haystack

关于pythonanywhere,网上说的很少呀找不到什么资料

转载于:https://www.cnblogs.com/Py-king/p/10618136.html

2019.03.28 博客反省相关推荐

  1. 2019年度CSDN博客之星TOP10榜单揭晓,你上榜了吗?

    培根说,『读书造成充实的人,会议造成未能觉悟的人,写作造成正确的人』. 在短信短视频快速迭代的快时代,更深度的思考.更正确的实践,更成体系的写作与分享,尤显可贵.这里,每一篇博文都是开发者实战的经验解 ...

  2. 【全网最全的博客美化系列教程】03.给博客添加一只萌萌哒的小仓鼠

    全网最全的博客美化系列教程相关文章目录 [全网最全的博客美化系列教程]01.添加Github项目链接 [全网最全的博客美化系列教程]02.添加QQ交谈链接 [全网最全的博客美化系列教程]03.给博客添 ...

  3. 大屏实时监控-2019年CSDN博客之星年度总评选(2019-02-07 13:47)

    监控地址:http://anymk.com:8888/ 2019-02-07 13:47 2019-02-01 20:09 2019-01-28 15:17 2019-01-25 15:01 大屏实时 ...

  4. 大屏实时监控-2019年CSDN博客之星年度总评选(2019-01-20 23:30)

    近期的2019年CSDN博客之星年度总评选战况空前激烈,前面看了第一名天元浪子每日发布的投票统计博客,觉得很有意思,于是我就换个角度来分析一下.目前大屏监控比较流行,我也就跟风制作了一个供大家鉴赏. ...

  5. CSDN:2019年度CSDN博客之星评选竞赛——105号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩!

    CSDN:2019年度CSDN博客之星评选竞赛--105号[一个处女座的程序猿],感谢您,投上的宝贵一票,感谢!感恩! 导读:新的一年,改革春风吹满地,新的一年要争气!  博主在此,祝所有朋友们,20 ...

  6. 数风流人物,俱在今朝!|2019年度CSDN博客之星TOP10榜单揭晓-智华非常荣幸入选中国博客之星TOP9,非常感谢大家的支持,愿和读者朋友们共同努力,坚持学习,让每个人都能实现自己的梦想!

    培根说,『读书造成充实的人,会议造成未能觉悟的人,写作造成正确的人』. 在短信短视频快速迭代的快时代,更深度的思考.更正确的实践,更成体系的写作与分享,尤显可贵.这里,每一篇博文都是开发者实战的经验解 ...

  7. 2019年度CSDN博客之星TOP10榜单揭晓 智华入选TOP9!

    培根说,『读书造成充实的人,会议造成未能觉悟的人,写作造成正确的人』.在短信短视频快速迭代的快时代,更深度的思考.更正确的实践,更成体系的写作与分享,尤显可贵.这里,每一篇博文都是开发者实战的经验解读 ...

  8. 2019年CSDN博客排名前15名强(历史上最强15名)

    今天突然心血来潮,特整理下CSDN 2019年最新博客排名: CSDN博客排名第15名.http://blog.csdn.net/topmvp CSDN博客排名第14名.http://blog.csd ...

  9. 2019修改CSDN博客皮肤教程

    第一步  进入 管理博客->博客设置 第二步   进入博客设置界面后,按F12打开网页检查器(推荐谷歌浏览器). 第三步  鼠标单击 Console 第四步 按照你想改的皮肤,选择以下代码复制进 ...

最新文章

  1. SQ 小车避障 Intel Realsense D435 基于线性梯度的深度值过滤
  2. 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
  3. MAC usb启动盘制作
  4. LeetCode 121:买卖股票的最佳时机 思考分析
  5. [古诗十九首] 西北有高楼 —— 无名氏
  6. 卷积神经网络的重要知识点
  7. git branch 分支管理
  8. 近世代数-群论基础二
  9. 三星设备如何打开开发者模式、如何下载安装play store以便进行正常的Android开发中的google购买测试
  10. 写作素材分类整理技巧分享
  11. 2019.4.8-pandas 读写csv;dorp删除行、列
  12. PHP 实现PDF转图片
  13. 如何用python画椭圆_怎么用python画椭圆?
  14. HTML5实现3D校园地图思路
  15. Python爬取【京东商城】商品信息实例(末尾有关于价格的爬取)
  16. HTTP 新增的 103 状态码,这次终于派上用场了!
  17. 不同原因的美团差评,如何回复?
  18. 非递归实现二叉树结点的遍历
  19. 洛谷P1010 [NOIP1998 普及组] 幂次方题解
  20. 10.1日NOIP模拟赛

热门文章

  1. 回流焊炉操作前需要做哪些准备工作
  2. 如何设计任天堂switch游戏机底座呢?乐得瑞LDR6023 PD协议芯片方案
  3. dell 重装linux系统_DELL 服务器 安装linux 系统
  4. sqoop 安装配置
  5. 【IEEE 2021大奖出炉】谷歌AI掌门人Jeff Dean获冯诺依曼奖
  6. 毕竟几人真得鹿,不知终日梦为鱼
  7. 5G助力工业互联网元年
  8. POJ 2945 Find the Clones
  9. Wine QQ 安装
  10. css网格_使用CSS网格构建的澳大利亚初创企业的周期表