2019.03.25 博客启动

今天六点时博客项目的正式启动

感冒还是没好,头还是有点痛。还是的话就要记住每一个步骤

ok  let`s go

1.首先还是第一步创建Django项目

2.创建第一应用,配置这个应用

3.创建一个静态文件,静态文件是要配置url路径的

  在setting中配置,global_setting 可以进入查看配置

  STATICFILES_DIFS = [

      os.path.join(BASE_DIR,'static','css'

  ]

  这样的话,当使用静态文件的时候,static/静态文件名就可以了

 在views中会有一个继承View的类,它里边应该封装有get请求和post请求

1.查看网页的结构,然后建立base.html。这个基础的就必须要挖坑,有变化的就要挖坑

  一节课帮你把前端的东西都分解出来了  该挖坑的挖坑了。我怎么那么害怕呢;她这样讲。

第一步完成,有个问题就是:在settings中不能注释吗

 

接下来是第二节,讲的是表单类的建立

1.表单类建立,字段

2.表单方法Unicode输出

3.表单类Meta修改表名

查询表信息都是通过表单类查询的

 

然后就是你要记住字段的名字,还有在admin站点中

如何让其显示为中文  verbose_name = u ' 所属标 '   字段中文

在setting中如何设置  找到了有一个叫 LANGUAGE_CODE = 'zh-Hans'

                 TIME_ZONE = 'Asia/Shanghai'

                 USE_TZ = False

 

写完表单类之后,就要生成数据库表了   连接本地的数据库

1.生成对应的数据库的迁移文件,makemigrations post

2.执行所有的迁移文件, migrate 

 

三个表都会有自己的ID是因为unique吗

自己试了好像不是

 

然后接下来就是 与后台站点admin关联了

引入 from models import *

admin.site.register(Category)

 

访问admin  发现还没注册账号和密码。然后就是他和一个auth_user 的表有关联

存放的是这个项目的后台站点账号管理

 

创建  createsuperuser

输入用户名  admin

邮箱  密码

完成

 改了中文之后,兑换了过来

发现应用名和模型类还是中文状态

怎么修改应用名呢  在apps.py中进行修改    然后要到_init_.py中添加默认的配置

为什么咧。 default_app_config = 'post.apps.PostConfig'

上面的verbose_name 是修改的是字段名

表名是 verbose_name_plural = u '类别'

 

以上就完成的中文的修改了  接下来就是添加字段

添加完之后,会默认显示在的 呈现的样式,是unicode那里设置的

添加就是,保存增加呗。

然后这就是第二节的内容,写帖子  下一节中会讲到,创建完帖子之后如何在首页中动态的显示出来

 

显示所有帖子的功能

1.查询帖子,传参数给index.html

 要想清楚查询到的贴子是什么,内容是什么

2.清楚要呈现什么内容

 显示的内容是自己并没有写的字段,而是关联的字段

 该怎么查询,post.category.关联字段但是为什么是小写的 

 时间过滤,首个要大写的。查询字段写在相应的位值就可以了

 

第四节 分页功能

分页,首先引包 from django.core.paginator import Paginantor

  上次也做过一个分页也用了这个的

  创建分页器对象,每一页只显示一条记录,还要进行排序,降序排序-created

  还是得多去分析分页这个东西,毕竟百度现在在用。多分析基本🆗了

  分页就靠一段了

第五节 阅读全文

点击重新获取超链接,我比较简单。接下来是markdown的步骤

1.在应用下建立一个py包,templatetags。然后建立一个叫mymarkdown的Py文件。

里面写需求

2.创建的是一个叫做md的过滤器吗

3.加载markddown  {%load mymarkdown %}

  然后它就是一个过滤器了。

出错了可以看后面给出的提示代码

我的电脑还是不行,不能用md显示在界面中

 

第六节 集成富文本编辑器

什么是富文本编辑器,然后如何发帖呢?

1.安装文件   django-ckeditor

2.配置第三方应用

3.配置media映射路径

上面这俩个都在setting中做

4.接下来是项目的映射路径

  这映射路径很奇怪耶

5.修改模型类

  去修改内容  content   RichTextUploadingField

6.终端中执行全局迁移文件  

  因为是第三应用  涉及迁移文件

7.看了效果才知道什么富文本编辑器

  原来是这样,我的天。可以的

 最后要认真的去看它配置的路径映射之类的,记住这个自带包富文本编辑器

我的打开怎么繁体字  简直了  看不懂

 

第七节 分类功能

我们就是把不变的东西变成可以改变的随之改变的

全局上下文    通过数据库查询出来的东西,可以放在全局上下文中

1.在应用包下创建全局上下文  分组,记录,排序

2.找到对应的显示对应的数据

3.还要配置全局上下文,不然找不到数据。setting模板中templates添加

  为什么我的注释会出问题    有意思   自己写的还是会出错呀!这或许就是bug  要自己清醒下来去

  检查,弄清楚思路

4.然后就是还是其他的一些链接显示

  接下里是近期文章   倒序,切片,显示字数限制

  和友情链接比较简单

 第八节 归档

1.原生数据库查询,引入包。connection

cursor = connection.cursor()

查询是一个列表里边有元祖、

有点东西还是会不太明白,因为没有仔细的讲 直接就引用了

 

第九节 分类链接功能

为什么那这样就可以获取到id了,很奇怪

函数视图  不是类视图

自己会有传过来的参数吗   记得获取过来的参数进行转型

继承html   extends

接下来都是链接查询的事情了   查询的方法说得太少,有点不太明白

 

第十节 归档链接功能

关键字传参 ?P<year>

妈耶这些链接,查询一脸懵逼

不过终于完成了

 

接下来应该时新的内容了

 

第十一节 Django缓存原理

缓存应用于很多地方,增加访问的速度。

Django也提供了这样的缓存机构

查看底层源码   缓存机制缓存

运用底层二阶装饰器来完成的

1.引入包  caches    获取缓存对象

写装饰器

2.缓存的读取,request.path 读取缓存中的数据

  第一次不一定会读取到数据  所以要判断  返回数据HttpRseponse(data)

  当读取不到的时候,从数据库中读取数据   因为第一次进来是读取不到数据的

   返回的是一个请求体

  然后就是要设置缓存  请求地址,相应内容吗

    模仿底层写了一个装饰器

缓存到哪里  它并没有说呀   装饰器有什么作用

为什么要用装饰器

第十二节 Django 缓存的使用

1.全栈缓存,在setting.py文件中添加中间件

  缓存数据的一个中间件

  为什么要把中间件放在第一和最后呢

  因为从缓存中获取数据肯定经过一系列的处理 。安全的请求才能让你处理

  中间件会有顺序的进行的,会执行我们的视图,执行完之后会逆行回去

2.在settings中配有缓存的位置,失效时间。可以修改失效时间

  存储的位置也是可以修改的   保存在redis中  然后要把默认的位置改了改成redis

缓存对象获取到了,可以设置值

3.局部的缓存  把中间件给注释掉吗

  在某一个视图中引入这个装饰器  cache_page   单位秒 随便设置过期时间

  和上节课是一样的  直接去引入那个包

  视图层缓存

  模板成缓存  {% load cache %} 直接加载这个模块

全栈缓存用的比较多

 这个模块没做出来

 

第十三节接下来是全文搜索

Django提供的全文检索类库

Django-haystack(容器)  支持四种搜索引擎

比较好的是whoosh(具体的搜索引擎)

1.安装模块

   pip install django-haystack

  后安装  pip install whooosh

前一个安装失败,我无语了   台式机可能有毒

我的破电脑都可以

2.全文搜索,title,关键字搜索,如何搜索呢

添加索引吗   就好像新华字典    底层建立索引也有类似于这样

3.settings 中配置应用      添加配置生成索引文件路径

4.在post应用包下创建search_indexes.py文件

  编辑,注意类名格式(模型类名+Index)

  重写父类的方法  def get_model(self)

  objects  搜索所有它继承谁来着

 5.创建搜索引擎模板   根据什么顺序来配置???

  项目文件夹下的templeta  就是那个每个文件夹下都要会的

变量标签

6.通过命令生成索引文件

  第一步就是生成索引文件

  

 第十四  搜索全文功能

上一节是建立索引文件,索引建立了。然后咧

然后再搜索框搜索

1.编辑搜索框请求功能

  action 一定是search   name 一定是q   为什么呢

2.然后配置路由

3.再项目目录下的templates/search下创建search.html    搜索的结果页面

  为啥都要写object这个对象   定义好的吗      但是对中文又不可以了

第十五节 全文搜索_中文分词

 用的是jieba这个模块

  https://github.com/fxsjy/jieba        jieba简介

如何去精确定位中文呢  因为中文没有分词不明显

那么如何嵌套到代码中去呢

一个工具包吗  如何添加到我们的搜索引擎当中去呢

拷贝whoosh引擎到post应用中

编辑post/whoosh_cn_backend.py文件

 

 

Python console  Python控制台

学会在这里边去检测代码

 

 

终于来到最后了

把项目部署到pythonanywhere.com

云服务器吗?

 

1.注册了一个账号  用户名是Ajking

免费给了一个域名,然后现在访问的时候就要用这个域名了

2.压缩包   打开文件上传  右键还可以选择在新的窗口打开链接

  打开Bash控制台

1.进入控制台,查询文件,解压文件,unzip

2.rm -rf blog.zip

3.创建虚拟环境,然后去安装各种模块,在项目中安装的模块、

  virtualenv blogenv --python==python2.7

cd blogenv  cd bin source activate

4.进入了虚拟的环境后,就可以安装模块了

  文件上传用到的pillow模块

pip list 查询安装的模块

5.上面所有的文件都安装好了,还要配置什么呢。在web中配置源码的路径

wsgi是什么呢   解除Django 

virtualenv 路径   Debug = False 所有的静态文件就不走static_url

静态文件  css布局

6.还有一个后台上传的配置Media

后还有一个后台站点   放在django下   因为他属于Django的

还需要富文本编辑器呢

配置完了    500 表示后台代码又问题

重新加载服务器

这个远程服务器  虚拟环境   前后端还是分离的   前端是static存放

                      后端存放在Bash中

 

最后虽然还是失败了  只是环境的问题

现在最主要的还是要巩固这些东西

将这些东西弄清楚

欧克   个人博客项目到这里就结束  我也不会回来再搞了,我要往更高的方向走了

 

posted @ 2019-03-25 18:10  AJking  阅读(154)  评论(0编辑  收藏  举报