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. Shell脚本 - 用来检查memcache并自动重启生效脚本

    #!/bin/sh#check memcache process and restart if downmm_bin="/usr/local/bin/memcached"mm_lo ...

  2. 利用ajax实现分页效果

    在网页中看到的分页效果,想一下就点击分页中的内容的时候,然后调用ajax调出对应的数据,正确的显示在相应的标签内. 1.用html实现正确的样式和结构 2.采用jquery中的ajax调出数据. 需要 ...

  3. linux 命令——42 kill (转)

    Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...

  4. Charles拦截请求

    一.通过Charles抓包,可拦截请求并篡改交互信息 1.可篡改客户端向服务器发起的请求信息(服务器收到的是假消息) 2.可篡改服务器返回给客户端的响应结果(客户端看到的是假消息) 二.篡改用户请求 ...

  5. ASP.NET各种技巧

    1.动态添加文件框 前台页面关键部分: <script type="text/javascript"> //添加一个选项 function AddFileCtrol() ...

  6. linux系统串口编程实例

    在嵌入式开发中一些设备如WiFi.蓝牙......都会通过串口进行主机与从机间通信,串口一般以每次1bit位进行传输,效率相对慢. 在linux系统下串口的编程有如下几个步骤,最主要的是串口初始化! ...

  7. GVIM——简直美如画,有没有!

    "========================================== " Author: wklken " Version: 9.1 " Em ...

  8. NOIP2018 全国热身赛 第二场 (不开放)

    NOIP2018 全国热身赛 第二场 (不开放) 题目链接:http://noi.ac/contest/26/problem/60 一道蛮有趣的题目. 然后比赛傻逼了. 即将做出来的时候去做别的题了. ...

  9. Java - Java 中的三种 ClassLoader

    1.虚拟机类加载器(称为“bootstrap class loader”),它本身没有父类加载器,它负责加载虚拟机的内置类,由于它是用C.C++写的,所以Java无法拿到其class文件,返回的都是空 ...

  10. JAVA 同步实现原理

    Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法.Synchronized的作用主要有三个: 确保线程互斥的访问同步代码 保 ...