博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django搭建个人博客:创建并配置APP功能模块
阅读量:6177 次
发布时间:2019-06-21

本文共 1889 字,大约阅读时间需要 6 分钟。

创建APP

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

打开命令行,进入项目所在的目录:(注意Django的操作必须在虚拟环境下进行)

E:\>cd django_projectE:\django_project>

进入虚拟环境(忘记进入venv方法的看这里: ):

E:\django_project> env\Scripts\activate.bat(env) E:\>

看到盘符前有(env)标识则表示进入虚拟环境成功。

输入python manage.py startapp article指令,创建名为article的app:

(env) E:\django_project\my_blog>python manage.py startapp article

查看一下my_blog文件夹,应该看到这样的结构:

my_blog│  db.sqlite3│  manage.py│├─article│  │  admin.py│  │  apps.py│  │  models.py│  │  tests.py│  │  views.py│  │  __init__.py│  ││  └─migrations│          __init__.py│└─my_blog    │  settings.py    │  urls.py    │  wsgi.py    └─ __init__.py

其中article文件夹就是刚创建出来的app,用来放置博客文章相关的代码。

注册APP(settings)

接着我们需要修改项目配置文件,“告诉”Django现在有article这么一个app了。

打开根目录的settings.py,找到INSTALLED_APPS写入如下代码:

settings.py/INSTALLED_APPS = [    # 其他代码    ...        # 新增'article'代码,激活app    'article',]

配置访问路径(urls)

然后再给app配置访问路径url。

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

打开根目录下的urls.py,增加以下代码:

urls.py/from django.contrib import admin# 记得引入includefrom django.urls import path, include# 存放映射关系的列表urlpatterns = [    path('admin/', admin.site.urls),    # 新增代码,配置app的url    path('article/', include('article.urls', namespace='article')),]

path为Django的路由语法。参数article/分配了app的访问路径;include将路径分发给下一步处理;namespace可以保证反查到唯一的url,即使不同的app使用了相同的url(后面会用到)。记得在顶部引入include

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

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

article/urls.py# 引入pathfrom django.urls import path# 正在部署的应用的名称app_name = 'article'urlpatterns = [    # 目前还没有urls]

urlpatterns中暂时是空的,没写入任何路径的映射,不着急以后会写。

注意Django2.0之后,app的urls.py必须配置app_name,否则会报错。

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

总结

本章创建了博客文章功能的app,学习了注册app并配置url。

下一章开始编写模型Model,理解Django的数据库处理。

  • 有疑问请在留言,我会尽快回复。
  • 或Email私信我:dusaiphoto@foxmail.com
  • 项目完整代码:
转载请告知作者并注明出处。
你可能感兴趣的文章
NULL与""空字符串的区别
查看>>
OSPF邻居关系建立过程详解
查看>>
JDK10 EA版特性速览
查看>>
超过254个IP,如何规划子网
查看>>
Amoeba新版本MYSQL读写分离配置
查看>>
制作XPE启动光盘的教程
查看>>
计算机网络基础
查看>>
一步步打造漂亮的新闻列表(无刷新分页、内容预览)(2)
查看>>
cron任务计划
查看>>
我也参加了唐骏一手推动的【2015年微创中国运动会】
查看>>
认证模式之SSL模式
查看>>
如何在 Linux 中统计一个进程的线程数
查看>>
NVIDIA新作解读:用GAN生成前所未有的高清图像(附PyTorch复现) | PaperDaily #15
查看>>
CString、CTime和COleDateTime转换
查看>>
在linux虚机中装vmtools
查看>>
WCF技术剖析之十三:序列化过程中的已知类型(Known Type)
查看>>
linux设备驱动程序--类class的实现
查看>>
中国云计算应用进入集中爆发期
查看>>
算法精解---计数排序
查看>>
DockOne微信分享(一二八):容器如何监控?
查看>>