yum install python3
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 中
[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中的“项目”(project)可以看作是一个专有名词,因为后面还有一个与之相关的名词“应用”(application)。
所谓项目可以理解为一个网站。
mkdir -p /opt/Django
cd /opt/Django
#创建目录并进入文件夹
django-admin
的用法如下(输入 django-admin
命令即可获得):
django-admin startproject blog
python3 manage.py runserver
python3 manage.py runserver 0.0.0.0:80
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中,人们把这些具体的功能成为应用。
python3 manage.py startapp blog_app1
从上述文件结构可以看出,在执行 python3 manage.py startapp blog_app1
后,在目录中已经多了一个 blog_app1
目录。
blog_app1
就是 blog
项目的一个应用,当一个应用创建后,Django会在这个应用中增加一些文件。
在了解 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
在这里应该看到熟悉的命令了吧,比如前面用的 startapp
、 startproject
、runserver
。
其实在这里 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
下面
blog 是所建项目的管理功能目录,这个目录的名称因所建项目的成成不同而异,具体的配置项建议写入到以下的配置文件中。
这个文件中包括了项目的初始化设置,可以针对整个项目进行有关参数配置,比如配置数据库,添加应用等,
这是一个URL配置表文件,主要是将URL映射到应用程序上。当用户请求某个URL时,Django项目会根据这个文件中的映射关系指向某个目标对象,该对象可以时某个应用中的 urls.py 文件,也可以时某个具体的视图函数。在 Django 中,这个文件也被称为URLconf。
WSGI是Web Server Gateway Interface 的缩写。WSGI是Python所选择的服务器和应用标准,Django也会使用。
一个编译后的文件夹,不运行项目则不会产生。
blog_app1
是 blog 项目中所创建的应用之一。没创建一个新的应用,Django 就会在项目根目录( ./ )中创建一个子目录,并且目录中会有一些默认的文件。
在这个文件中,可以定义 Django 管理工具,比如设置在管理界面能够管理的项目,或者通过重新自定义与系统管理有关的类对象,向管理功能增加新的内容。
这个文件是 Django1.10 之后增加的,通常包含对应用的配置,比如管理功能提供一个适合的应用名称。
这是一个目录,用于存放应用的数据库表结构的指令,通过这些指令可以修改和创建数据库,从而在models.py 模型类和数据库表之间迁移。
这是应用的数据模型,但是每个 Django 应用都应当有一个 models.py 文件,虽然该文件可以为空,但是不能删除。
这个文件中可以编写测试文档来测试所建立的应用。
这是一个重要的文件用户保存响应各种请求的函数或者类。如果编写时是函数,则称之为基于函数的视图;如果编写的是类,则称之为基于类的视图。
这是一个默认的数据库。因为我们还没有配置数据库,所以就有了以一个默认的配置文件(这个默认的文件是在./blog/settings.py 中配置生成的)
前面仅仅是创建了应用,还没有将该应用注册到本项目中,因此暂时不能访问。
在Django项目中,主管信息注册(对本项目进行各种信息声明)的文件是./mysite/settings.py
。
其值为True或者False。在开发过程中,需要设置成True,在测试功能时,Django能够显示详细的报错信息——这是“开发模式”。如果将项目部署到真正要对外发布的服务器上,我们称之为“生产环境”,必须将其值修改为False,从而避免暴露项目的内部信息。
在DEBUG为True时,其值可以为空。当部署到生产环境中时,要把主域名填写到这里,才能通过域名访问到本网站。
这是一个非常重要的配置项,所有的应用只有写到这里才能生效。默认情况下,已经有了一些应用,比如django.contrib.admin就是针对项目后台管理的应用。现在需要把刚刚建立的应用blog配置到这里。下面的INSTALLED_APPS列表中。
在这里可以配置数据库。Django 能够支持多种数据库,比如常见的MySQL、PostgreSQL、Oracle 等。如果用到了别的数据库,可以到官方网站查阅相关配置方式 https://docs.djangoproject.com/en/1.10/ref/databases/
设置项目的语言,一般情况下可以不用修改,如果非用汉语,则设置为LANGUAGE_CODE=‘zh-hans’(注意不是’zh-cn’)。
设置时区,通常使用东八区,设置为“Asia/Shanghai”。
所谓“开发模式”,是相对“生产模式”而言的,即系统尚处于开发阶段,还没有正式对外部客户提供服务,这种模式下很多配置都是为了开发而定的,比如在Django开发模式中,不需要配置Apache或者Nginx等服务器,也能够运行网站,这是因为Django本身就提供了简单的Web服务器功能,但是这仅限于开发过程,当网站被正式部署之后,即转换为“生产模式”时,就需要对部分配置进行修改。
在开发模式中,Django会自动检测到修改的代码并重新加载,不需要每次修改代码后重新启动Web服务器。只有在新增加文件后,才需要重启Django服务。
运行Django服务的指令是python manage.py runserver。
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中注册后才能生效。