Django | 简单的博客系统_Django起步《Django 实战》读书笔记

一、安装 python3

yum install python3

在这里插入图片描述

二、安装 Django

2.1 Django 简介

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第1张图片

2.2 安装 Django

pip3 install django==2.1.8
#建议使用低版本 Django,否则,可能会有 django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is requir 报错

或者

pip3 install django

备注:这里使用 pip3 命令主要是因为 python3 自带的是 pip3 ;若使用 pip 则默认安装在 python2 中
Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第2张图片

2.3 查看 Django 版本

[root@iZ9i4xchl7680mZ ~]# python3
Python 3.6.8 (default, Apr  2 2020, 13:34:55) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print(django.get_version())
3.0.8
>>> 

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第3张图片

三、创建项目

  Django中的“项目”(project)可以看作是一个专有名词,因为后面还有一个与之相关的名词“应用”(application)。
  所谓项目可以理解为一个网站。

3.1 创建项目目录

mkdir -p /opt/Django
cd /opt/Django
#创建目录并进入文件夹

django-admin 的用法如下(输入 django-admin 命令即可获得):

3.2 创建项目

django-admin startproject blog

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第4张图片

3.3 启动项目

python3 manage.py runserver
python3 manage.py runserver 0.0.0.0:80

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第5张图片
项目报错:

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.


您有15个未申请的迁移。您的项目可能无法正常工作,除非您为应用程序应用迁移:admin、auth、contenttypes、sessions。
运行'python manage.py migrate'迁移以应用它们。

处理方法:

python3 manage.py migrate

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第6张图片
Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第7张图片

3.4 访问项目

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第8张图片

四、创建应用

4.1 创建应用

  项目已经创建好了,网站也有了,接下来要实现网站的具体功能。在Django中,人们把这些具体的功能成为应用。

python3 manage.py startapp blog_app1

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第9张图片
  从上述文件结构可以看出,在执行 python3 manage.py startapp blog_app1 后,在目录中已经多了一个 blog_app1 目录。

  blog_app1就是 blog 项目的一个应用,当一个应用创建后,Django会在这个应用中增加一些文件。

4.2 应用文件讲解说明

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第10张图片

4.2.1 manage.py

  在了解 manage.py 之前,先来了解下创建项目时用到的 django-admin.py ,它是 Django 的任务股那里命令行工具,如上文所述,可以通过 django-admin.py 命令查看帮助信息和所支持的命令行参数。

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

  在这里应该看到熟悉的命令了吧,比如前面用的 startappstartprojectrunserver

其实在这里 python3 manage.py startapp blog_app1 django-admin.py startapp blog_app1 这两个命令的效果时完全一样的

其,来龙去脉在于

  • python3 manage.py startapp blog_app1

  • 特点:项目命令,随项目创建而产生

  • 详解: 在创建一个Django 项目后,manage.py 被自动生成在项目的根目录中,他是对 dgango-admin.py 的简单封装,同样能够实现命令行操作。

  • django-admin.py

  • 特点:全局命令,随 Django 的安装而产生

  • 详解:它在安装 Django 后,就保存在 Django 安装目录的 /bin 下面

4.2.2 blog

  blog 是所建项目的管理功能目录,这个目录的名称因所建项目的成成不同而异,具体的配置项建议写入到以下的配置文件中。

4.2.2.1 settings.py

  这个文件中包括了项目的初始化设置,可以针对整个项目进行有关参数配置,比如配置数据库,添加应用等,

4.2.2.2 urls.py

  这是一个URL配置表文件,主要是将URL映射到应用程序上。当用户请求某个URL时,Django项目会根据这个文件中的映射关系指向某个目标对象,该对象可以时某个应用中的 urls.py 文件,也可以时某个具体的视图函数。在 Django 中,这个文件也被称为URLconf。

4.2.2.3 wsgi.py

  WSGI是Web Server Gateway Interface 的缩写。WSGI是Python所选择的服务器和应用标准,Django也会使用。

4.2.2.4 _pycache

  一个编译后的文件夹,不运行项目则不会产生。

4.2.3 blog_app1

blog_app1 是 blog 项目中所创建的应用之一。没创建一个新的应用,Django 就会在项目根目录( ./ )中创建一个子目录,并且目录中会有一些默认的文件。

4.2.3.1 admin.py

  在这个文件中,可以定义 Django 管理工具,比如设置在管理界面能够管理的项目,或者通过重新自定义与系统管理有关的类对象,向管理功能增加新的内容。

4.2.3.2 apps.py

  这个文件是 Django1.10 之后增加的,通常包含对应用的配置,比如管理功能提供一个适合的应用名称。

4.2.3.3 migrations.py

  这是一个目录,用于存放应用的数据库表结构的指令,通过这些指令可以修改和创建数据库,从而在models.py 模型类和数据库表之间迁移。

4.2.3.4 models.py

  这是应用的数据模型,但是每个 Django 应用都应当有一个 models.py 文件,虽然该文件可以为空,但是不能删除。

4.2.3.5 test.py

  这个文件中可以编写测试文档来测试所建立的应用。

4.2.3.6 views.py

  这是一个重要的文件用户保存响应各种请求的函数或者类。如果编写时是函数,则称之为基于函数的视图;如果编写的是类,则称之为基于类的视图。

4.2.4 db.sqlite3

  这是一个默认的数据库。因为我们还没有配置数据库,所以就有了以一个默认的配置文件(这个默认的文件是在./blog/settings.py 中配置生成的)

五、网站配置

  前面仅仅是创建了应用,还没有将该应用注册到本项目中,因此暂时不能访问。
  在Django项目中,主管信息注册(对本项目进行各种信息声明)的文件是./mysite/settings.py

5.2.1 DEBUG

  其值为True或者False。在开发过程中,需要设置成True,在测试功能时,Django能够显示详细的报错信息——这是“开发模式”。如果将项目部署到真正要对外发布的服务器上,我们称之为“生产环境”,必须将其值修改为False,从而避免暴露项目的内部信息

5.2.2 ALLOWED_HOSTS

  在DEBUG为True时,其值可以为空。当部署到生产环境中时,要把主域名填写到这里,才能通过域名访问到本网站

5.2.3 INSTALLED_APPS

  这是一个非常重要的配置项,所有的应用只有写到这里才能生效。默认情况下,已经有了一些应用,比如django.contrib.admin就是针对项目后台管理的应用。现在需要把刚刚建立的应用blog配置到这里。下面的INSTALLED_APPS列表中。

Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第11张图片

4.2.4 DTABASES

  在这里可以配置数据库。Django 能够支持多种数据库,比如常见的MySQL、PostgreSQL、Oracle 等。如果用到了别的数据库,可以到官方网站查阅相关配置方式 https://docs.djangoproject.com/en/1.10/ref/databases/

5.2.5 LANGUAGE_CODE

  设置项目的语言,一般情况下可以不用修改,如果非用汉语,则设置为LANGUAGE_CODE=‘zh-hans’(注意不是’zh-cn’)。

5.2.6 TIME_ZONE

  设置时区,通常使用东八区,设置为“Asia/Shanghai”。
Django | 简单的博客系统_Django起步《Django 实战》读书笔记_第12张图片

六、总结

6.1 开发模式

  所谓“开发模式”,是相对“生产模式”而言的,即系统尚处于开发阶段,还没有正式对外部客户提供服务,这种模式下很多配置都是为了开发而定的,比如在Django开发模式中,不需要配置Apache或者Nginx等服务器,也能够运行网站,这是因为Django本身就提供了简单的Web服务器功能,但是这仅限于开发过程,当网站被正式部署之后,即转换为“生产模式”时,就需要对部分配置进行修改。
  在开发模式中,Django会自动检测到修改的代码并重新加载,不需要每次修改代码后重新启动Web服务器。只有在新增加文件后,才需要重启Django服务。
  运行Django服务的指令是python manage.py runserver。

6.2 项目和应用

  Django安装好之后,就有了django-admin这个默认命令,可以用diango-admin startproject projectname命令创建一个Django项目。项目是由若干个“应用”(app)组成的,实现具体功能。创建应用可以使用python manag.py startapp appname命令,也可以使用django-amdin startapp appname命令。
  创建了项目和应用之后,会生成一些默认的文件,它们要么是一些默认的配置,如settings.py,要么是空文件,仅仅是为了占据一个位置而已,如应用里面的views.py、models.py等。
  每个应用都要在项目的settings.py文件的INSTALLED_APPS中进行声明,告诉Django这个应用是本项目的一部分。
  Django将很多默认的功能(比如用户管理功能)视为一个应用。此外,Django是一个开放的系统,任何人都可以开发第三方应用,这些第三方应用通常用于解决某个常见的问题,开发者在项目中使用第三方应用的主要目的就是节省时间、快速开发。这些第三方应用如果要在项目中使用,也要在settings.py的INSTALLED_APPS中注册后才能生效。

你可能感兴趣的:(Django,读书笔记)