django project目录说明

    project
- app01
-- admin.py #django自带后台管理
-- apps.py #app01配置文件
-- models.py #编写类,创建数据库表
-- test.py #单元测试
-- views.py #业务处理函数
- app02 django 路由系统
路由系统(url和视图函数的映射) . 常见的路由设置(静态路由,动态路由,分组) r'^index/' -> def index(request)
r'^add_user/(\d+)/ --> def add_user(request, a1)
r'^add_user/(?P<name>\d+)/' -> def add_user(request,name) ps:
终止符
r'^index$'
伪静态
r'^edit/(\w+).html$' 路由分发(二级路由,非常重要)-- 强烈推荐用这种写法 - 在day3目录下的urls.py,修改
from django.conf.urls import url, include
url(r'^app01/', include('app01.urls')) # 注意include里面是字符串 - 在app01目录下新建urls.py,并修改如下
from django.conf.urls import url
from app01 import views
urlpatterns = [
url(r'^index.html$', views.index)
] - 修改views下面的index函数 路由别名方向生成url(作用:根据url名字找到url或发生成新url) - 在视图python代码,获取url或生成url
url(r'^index/', views.index, name='n1'),
url(r'^index/(\d+)/', views.index, name='n2'),
url(r'^index/(?P<b3>\d+)/', views.index, name='n3'), from django.shortcuts import reverse
v = reverse('n1')
print(v)
#/index/
v = reverse('n2', args=(,))
print(v)
#/index//
v = reverse('n3', kwargs={'b3':,})
print(v)
#/index// - 在模板Html中获取url
url(r'^index/', views.index, name='n1'),
{% url 'n1' %} # 得到的是/index/ url(r'^index/(\d+)/', views.index, name='n2'),
{% url 'n1' %} # 得到的是/index// url(r'^index/(\d+)/(\d+)', views.index, name='n2'),
{% url 'n1' %} # 到的是/index///       
       二级路由:
          url(r'^product/',include('product.urls', namespace="product")),
    
          url(r'^pc/products/$',views.pc_permanent_product_list_view,name='pc_permanent_product_list_view'),
          模板获取url
          {% url 'product:pc_permanent_product_list_view' %}

     路由系统详细
a. 静态路由
url(r'^index/', views.index),
url(r'^new_edit/(\w+)/(+w)/', views.new_edit),
url(r'^new_edit/(?P<a1>\w+)/(?P<a2>\w+)', views.new_edit), url(r'^edit/', views.edit),
-- http://127.0.0.1:8000/edit/?nid=2
-- def edit(request):
nid = request.GET.get('nid')
b. 动态路由
- 位置参数
url(r'^new_edit/(\w+)', views.new_edit),
-- http://127.0.0.1:8000/new_edit/alex
-- def new_edit(request,a1):
#其中的a1位alex - 关键字参数(分组)
url(r'^new_edit/(?P<a1>\w+)/(?P<a2>\w+)', views.new_edit), -- def new_edit(request,a1,a2):
#其中的a1位alex c. 路由别名 d. 反向路由 e. 路由分发 f. 路由写法:开始符^, 终止符$, 伪静态.html 权限管理(根据url别名)
用户登录后显示用户权限的菜单(菜单是一个a连接,<a href={{根据别名转成的url}}></a>)
所以在数据库只要存储权限菜单url的别名即可

[oldboy-django][2深入django]django目录说明 + 路由系统的更多相关文章

  1. 【Django】基于Django架构网站代码的目录结构

     经典的Django项目源码目录结构 Django在一个项目的目录结构划分方面缺乏必要的规范.在Django的官方文档中并没有给出大型项目的代码建议目录结构,网上的文章也是根据项目的不同结构也有适当的 ...

  2. Django 博客开发教程目录索引

    Django 博客开发教程目录索引 本项目适合 0 基础的 Django 开发新人. 项目演示地址:Black & White,代码 GitHub 仓库地址:zmrenwu/django-bl ...

  3. Django之创建项目、目录层级、基本操作

    创建项目 在合适的位置创建一个目录 打开cmd窗口,进入到创建的目录内 输入django-admin startproject project 目录层级 manage.py 是一个命令行工具,可以使我 ...

  4. 初学Django基础01 建立工程,目录结构,常用配置,上下文管理,模板渲染

    django是python的web重量级框架,发展已经有10年多了,对应下面版本 Django 版本 Python 版本 1.8 2.7, 3.2 , 3.3, 3.4, 3.5 1.9, 1.10 ...

  5. django的下载安装,目录结构的介绍,简单的django应用

    1.django的下载安装 pip3 install django==1.11.9 2.django的创建 1.在windows的cmd窗口下 1.1创建django项目 django-admin s ...

  6. django目录下的路由系统和视图函数

    一.Django路由系统(url) 1.什么是路由系统 路由系统的本质是URL模式以及要为该URL模式调用的视图函数之间的一个映射表即不同的url路径对应的不同的函数,该路由系统是存放在全局配置文件u ...

  7. Django路由系统

    django路由系统 简而言之,django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里的关系条目,去查找到与请求对应的处理方法,从 ...

  8. Django URL (路由系统)

    URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那 ...

  9. Django项目实践4 - Django站点管理(后台管理员)

    http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于某一类 ...

随机推荐

  1. java Vamei快速教程07 包

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经写了一些Java程序.之前的每个Java程序都被保存为一个文件,比如Tes ...

  2. 利用Python实现 队列的算法

    以下内容都是来自“悟空“大神的讲解,听他的视频课,利用Python实现堆栈的算法,自己做了一些小总结,可能会存在自己理解的一些误区, 1.栈的实现 队列的特征是先进先出,同我们生活中的队列具有相同的特 ...

  3. 2017.12.19 Java包的静态导入import static和import的区别

    import static静态导入是JDK1.5中的新特性.一般我们导入一个类都用 import com-..ClassName;而静态导入是这样:import static com-..ClassN ...

  4. GBDT回归的原理及Python实现

    一.原理篇 1.1 温故知新回归树是GBDT的基础,之前的一篇文章曾经讲过回归树的原理和实现.链接如下: 回归树的原理及Python实现 1.2 预测年龄仍然以预测同事年龄来举例,从<回归树&g ...

  5. python_45_目录编程

    #获取当前目录 import os print(os.getcwd()) #获取目录内容 import os print(os.listdir('C:\\Python27')) #创建目录 impor ...

  6. java arraylist int[] 转换

    double no=Double.valueOf("str");int num4=(int)no;double no1=Double.parseDouble("str&q ...

  7. 基于 Nginx && Lua 的简易CC防护方案

    零.前言 1.CC攻击简述 CC攻击(Challenge Collapsar)是常见网站应用层攻击的一种,目的是消耗服务器资源,降低业务响应效率:极端情况会让站点无法正常提供服务: 2.本文要点 旨在 ...

  8. js实现全选,反选,全不选

    思路:1.获取元素.2.用for循环历遍数组,把checkbox的checked设置为true即实现全选,把checkbox的checked设置为false即实现不选.3.通过if判断,如果check ...

  9. java连接MySQL数据库操作步骤

    package com.swift; //这里导入的包是java.sql.Connection而不是com.mysql.jdbc.Connection import java.sql.Connecti ...

  10. centos 7 安装以及ip配置

    1.安装: root 200M: swap 内存的2倍,如果内存超过4g,最大设为8g就够了: / 剩余: 2.ip配置 (1)动态配置:dhclient ip add (2)静态配置:vi /etc ...