django下创建多个app并设置urls方法


Posted in Python onAugust 02, 2020

1、创建第二个app

假设我们项目P下面已经有了一个默认的app,名字是app1。现在我想创建第二个app,名字时app2。

进入pychram下的Terminal中,运行命令:

python manage.py startapp app2

此外,我在每个app下都建立一个urls.py,方便区分。

右击app名,点击“new”,选择“Python File”,命名为urls,确定。

2、设置url.py

(1)设置P\urls.py

引入app2下的urls,然后添加引导路径。具体代码如下:

from app2 import urls as app2_urls
urlpatterns = [
    path('app2/',include(app2_urls)), # 将所有以app2开头的urls,都交给app2(app名)下的urls.py处理    
]

(2)设置app2\urls.py

from django.urls import path
from app2 import views
urlpatterns = [
    path('index/', views.index),
]

3、编写app2下的views.py

from django.shortcuts import render,HttpResponse
# Create your views here.
# 绑定博客
def index(request):
    return HttpResponse(111)

4、html页面如何调用url

一般在href或者src中调用一般这样写:

href="/app2/index/" rel="external nofollow"

这样就OK了。

内容扩展:

Django项目下创建多个app

基于Django2.0版本建立的项目。

之前在项目下建立app都是单个的,最近由于需求,需要在单个项目下建立多个app,最简单的方法就是将所有的app都放在与manage.py文件同级的目录下,但是这样的方式会显得项目目录下的文件夹臃肿,对于强迫症的而言简直是一种折磨。

所以我采取了将多个app放在同一个文件夹内的方式来解决这种问题。

myDjango
  ├───.idea
  │  └───inspectionProfiles
  ├───Apps
  │  ├───app01
  │  │  ├───migrations
  │  │  │  └───__pycache__
  │  │  └───__pycache__
  │  └───app02
  │    ├───migrations
  │    │  └───__pycache__
  │    └───__pycache__
  ├───myDjango
  │  └───__pycache__
  └───templates
    ├───app01
    └───app02

myDjango是项目名称,将创建的app放在了Apps文件夹内。这样做使整个项目的看起来干净很多。对于template也采取了类似的做法,将不同应用的template放在不同的目录下,为了使url尽量看起来舒服一点,在每个应用中添加了一个urls.py文件,为了在项目的urls.py文件中引用。

放置好之后在myDjango目录下的setting.py文件进行设置,添加一句

sys.path.insert(0, os.path.join(BASE_DIR, 'Apps'))

做好之后,还需要在myDjango目录下的urls.py文件添加对应的path

from django.contrib import admin
from django.urls import path, include
 
urlpatterns = [
  path('admin/', admin.site.urls),
  path('app02/', include("Apps.app02.urls")),
  path('app01', include("Apps.app01.urls")),
]

到这里基本上就可以在一个项目中设置多个app了。

Python 相关文章推荐
python实现的防DDoS脚本
Feb 08 Python
python实现简单ftp客户端的方法
Jun 28 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
Flask解决跨域的问题示例代码
Feb 12 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Python文本处理简单易懂方法解析
Dec 19 Python
django 链接多个数据库 并使用原生sql实现
Mar 28 Python
django自定义非主键自增字段类型详解(auto increment field)
Mar 30 Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 Python
详解python 内存优化
Aug 17 Python
Django如何在不停机的情况下创建索引
Aug 02 #Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 #Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 #Python
Flask缓存静态文件的具体方法
Aug 02 #Python
Flask中sqlalchemy模块的实例用法
Aug 02 #Python
python线程里哪种模块比较适合
Aug 02 #Python
python缩进长度是否统一
Aug 02 #Python
You might like
用PHP实现小型站点广告管理
2006/10/09 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
提高php编程效率技巧
2015/08/13 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
关于JavaScript中string 的replace
2013/04/12 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
vue 组件简介
2020/07/31 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[02:11]完美世界DOTA2联赛10月28日赛事精彩集锦:来吧展示实力强劲
2020/10/29 DOTA
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
如何基于线程池提升request模块效率
2020/04/18 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
大学生通用个人自我评价
2014/04/27 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
消防安全培训工作总结
2015/10/23 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL