Django搭建博客_1:创建项目和应用

1 创建项目(project)

django中的项目(project)可以看做是一个专有名字,因为后面还有一个与之有关的名字应用(application)。

切换到相应的文件夹中:

~ mkdir DjangoDemo
~ cd DjangoDemo
~ pwd
Documents/develope/DjangoDemo

执行

django-admin.py startproject mysite

执行后查看目录结构:

~ tree
.
└── mysite
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

2 directories, 5 files

2 启动项目

切换到工程根目录下,运行下面命令:

python manage.py runserver 

执行后,如果一切正常,最终会看到下面的提示信息:

~ cd mysite
~ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 13 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.

March 29, 2020 - 12:55:59
Django version 1.11, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

提示信息的第一行说明已经启动了一个服务,可以通过 http://127.0.0.1:8000/ 访问。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aeec9Zwk-1586160060685)(evernotecid://B1C45E84-DAD5-4A3E-8F09-F042CE8BEC59/appyinxiangcom/9699651/ENResource/p2364)]

3 创建应用(application)

项目已经创建好了,接下来就要实现网站的具体功能,在Django中,通常把这些具体的功能成为应用(application)。

切换到manage.py文件所在的目录,然后执行:

python manage.py startapp blog

执行后,目录中多了一个bolg文件夹:

~ tree
.
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── mysite
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-36.pyc
    │   ├── settings.cpython-36.pyc
    │   ├── urls.cpython-36.pyc
    │   └── wsgi.cpython-36.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

4 directories, 17 files

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

4 网站配置

网站的配置需要是针对~/mysite/settings.py文件进行配置,需要把刚刚建立的应用blog配置到这里:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog', # 新增配置
]

然后访问:

http://127.0.0.1:8000/blog

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kMi3Vcdg-1586160060688)(evernotecid://B1C45E84-DAD5-4A3E-8F09-F042CE8BEC59/appyinxiangcom/9699651/ENResource/p2440)]

4.1 settings.py配置说明

  • DEBUG:True为打开开发者模式,用于调试和测试;False为关闭,部署到生产环境需要设置为False。

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

  • INSTALLED_APPS:所有的应用只有写到这个配置文件中才能生效。默认情况下,已经有了一些应用,比如django.contrib.admin就是针对项目后台管理的应用.

  • DATABASES:数据库配置。默认为SQLite,

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

  • TIIM_ZONE:设置时区,通常使用东八区,设置为"Asia/Shanghai"

5 项目各部分介绍

5.1 django-admin.py

django-admin.py是Django的任务管理命令行工具。可以通过以下命令查看帮助 信息和所支持的命令行参数:

djando-admin

django-admin.py文件位置在Django安装目录的bin文件夹中。

~ where django-admin.py
/Users/tangbincheng/.pyenv/shims/django-admin.py

5.2 manage.py

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

所以,对于3中创建应用,也可以使用django-admin.py的命令,效果是一样的:

django-admin startapp log

5.3 mysite

mysite是项目名称,会因创建时命名不同而改变,是所建项目的管理功能目录,里面的几个文件常用于面向整个项目进行参数配置:

  • settings.py:项目配置文件,这个文件中包括了项目的初始化设置,比如配置数据库、添加应用等。

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

  • wsgi.py: wsgi是Python所选择的服务器和应用标准(WSGI Web Server Gateway Interface的缩写),定义了创建的项目都是WSGI应用。

  • _pycache_ :是项目编译后的文件夹,只有网站运行后,它才会出现。

5.4 blog

blog是在项目中所创建的应用之一,用创建应用的指令还可以创建很多其他的应用。每创建一个新的应用,Django就会在项目根目录下创建一个子目录,并且目录中会有一些默认的文件:

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

  • apps.py:含对应用的配置,比如为管理功能提供一个适合的应用名称,这个文件是Django 1.10之后增加的。

  • migrations:用于存储应用的数据库表结构的指令,通过这些指令可以修改和创建数据库,从而在models.py模型类和数据库表之间迁移。

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

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

  • views.py:保存函数或者类的视图文件。如果编写的是函数,则称之为基于函数的视图;如果编写的是类,则称之为基于类的视图。

5.5 db.sqlite3

Django的默认数据库。

6 总结

Django安装好之后,就有了django-admin这个默认命令,可以用 diango-admin startproject ${projectname}命令创建一个 Django项目。项目是由若干个“应用”(app)组成的,实现具体功能。创建应用可以使用python manage.py startapp ${appname}命令,也可以使用django-amdin startapp ${appname}命令。

创建了项目和应用之后,会生成一些默认的文件,它们要么是一些默认的配置,如settings.py,要么是空文件,仅仅是为了占据一个位置而已,如应用里面的views.py、models.py等。

每个应用都要在项目的 settings.py件的 INSTALLED_APPS中进行声明。Django将很多默认的功能(比如用户管理功能)视为一个应用。此外,Django是一个开放的系统,任何人都可以开发第三方应用,这些第三方应用通常用于解决某个常见的问题,开发者在项目中使用第三方应用的主要目的就是节省时间、快速开发。这些第三方应用如果要在项目中使用,也要在settings.py的INSTALLED_APPS中注册后才能生效。

运行Django服务的指令是python manage.py runserver。

猜你喜欢

转载自blog.csdn.net/tt75281920/article/details/105345492
今日推荐