一、创建APP

在Django中的一个app代表一个功能模块。开发者可以将不同功能的模块放在不同的app中,方便代码的复用。app就是项目的基石,因此开发博客的第一步就是创建新的app,用来实现跟文章相关的功能模块。

在虚拟环境下,输入python manage.py startapp article指令,创建名为​article​的app

python manage.py startapp article

Django搭建个人博客--创建并配置APP_django

新建article app后的项目结构如下图示

Django搭建个人博客--创建并配置APP_sqlite_02


Django搭建个人博客--创建并配置APP_django_03

项目结构分解如下

  • my_blog\my_blog:其中的​​settings.py​​​包含项目的配置参数,​​urls.py​​则是项目的根路由文件;
  • my_blog\db.sqlite3:​​db.sqlite3​​是一个轻量级的数据库文件,用来存储项目产生的数据,比如博客文章;
  • my_blog\manage.py:​​manage.py​​​是项目执行命令的入口,比如​​runserver​​;
  • my_blog\article:​​article​​是刚刚创建出来的app,用来放置博客文章相关的代码;
  • my_blog\article\admin.py:后台管理文件;
  • my_blog\article\models.py:数据模型文件;
  • my_blog\article\views.py:视图文件;
  • my_blog\article\migrations:存放数据迁移文件的目录;

二、注册APP(settings)

接着就需要修改项目配置文件,“告诉” Django现在有一个app叫article。

打开my_blog\settings.py,找到INSTALLED_APPS写入如下代码

Django搭建个人博客--创建并配置APP_项目结构_04


三、配置访问路径(urls)

然后再给app配置访问路径url。
url可以理解为访问网站是输入的网址链接,配置好url后Django才知道怎样定位app。

打开my_blog\urls.py,增加以下代码

Django搭建个人博客--创建并配置APP_django_05


path为Django的路由语法:

  • 参数​​article/​​分配了app的访问路径;
  • ​include​​将路径分发给下一步处理;
  • ​namespace​​可以保证反查到唯一的url,即使不同的app使用的相同的url;

在开发环境下,​​article​​​的​​url​​​为:​​http://127.0.0.1:8000/article/​

现在我们已经通过​​path​​​将根路径为​​article​​​的访问都分发给​​article​​​这个app去处理。但是app通常有多个页面地址,因此还需要app自己也有一个路由分发,也就是​​article.urls​​。

article可以有多个页面,例如列表页面、详情页面等,那么就需要如下两个url:
​​​ http://127.0.0.1:8000/article/list/​​​​ http://127.0.0.1:8000/article/detail​​ app中的urls.py就是用来区分它们的。

在app生成是并没有这个文件,因此需要自己在article文件夹中新建​urls.py​,在里面输入

Django搭建个人博客--创建并配置APP_sqlite_06


urlpatterns中暂时是空的,没写入任何路径的映射。

此时我们的app就配置完成 。

此时app还没有写好,因此启动服务器可能会报错,是正常的。
Django2.0之后,app的​​​urls.py​​​必须配置​​app_name​​,否则会报错。