Python菜鸟之路:Django 路由、模板、ORM

Django路由系统

  Django的路由系统让Django可以根据URI进行匹配,进而发送至特定的函数去处理用户请求。有点类似nginx的location功能。

  Django的路由关系分为三种:普通关系、动态关系、分组分发。这三种关系都记录在urls.py中。

路由-普通关系

  普通关系表示一个url对应一个函数,例如:

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^login/‘, views.login),
    url(r‘^detail/‘, views.detail),
]

路由-动态关系

  动态关系表示通过正则的方式去实现动态匹配。例如:

urlpatterns = [
    url(r‘^detail/(\d+)/‘, views.detail),  # 动态路由之:单参数的路由
    url(r‘^detail2/(\d+)/‘, views.detail2),  # 动态路由之:多参数的路由
    url(r‘^detail3/(?P<p1>\d+)/(?P<x2>\d+)/‘, views.detail3), # 动态路由之:命名参数,两个参数分别被命名为p1和x2
    url(r‘^index/(\d+)/‘, views.index),  # 分页显示
]

  动态路由其实通过映射也可以实现

路由-分组分发

时间: 2024-10-05 19:28:47

Python菜鸟之路:Django 路由、模板、ORM的相关文章

Python菜鸟之路:Django 路由补充FBV和CBV

在Python菜鸟之路:Django 路由.模板.Model(ORM)一节中,已经介绍了几种路由的写法及对应关系,那种写法可以称之为FBV: function base view . 今天补充另外一种路由关系的写法:CBV,即:class base view , 也可以看做为面向资源编程的另外一种叫法,类似tornado中的路由写法. 1. 建立路由关系urls.py from app01 import views urlpatterns = [ url(r'^home/', views.Hom

Python菜鸟之路:Django Admin后台管理功能使用

前言 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ] 上边看到导入的admin模块,就是本节所要说的主要内容 主要功能 功能1:提供数据库管理功能 基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查 功能2:二次开发 基于该模块

Python菜鸟之路:Django 缓存

Django中提供了6种缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块) Memcache缓存(pylibmc模块) 1. 开发调试 # 此为开始调试用,实际内部不做任何操作 # 配置: CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # 引擎 'TIMEOUT': 300, # 缓存超时时间(默认300,None表示永不过期,

Python菜鸟之路:Django 表单验证

前言 Django中完成表单验证,常用的有两种方法: 一种是通过HTML + JS + Ajax实现. 另一种是通过Django自身的forms模块来生成相应个HTML标签来完成表单验证.这是本节着重讲的地方 第一种方法:html + ajax实现基本的login页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

Python菜鸟之路:Django ModelForm的使用

一.简单使用案例 #views.py from django.shortcuts import render,HttpResponse from app01 import models from django import forms from django.forms import fields as Ffields from django.forms import widgets as Fwidgets class UserInfoModelForm(forms.ModelForm): is

Python菜鸟之路:Django 序列化数据

类型一:对于表单数据进行序列化 这时需要用到ErrorDict. ret['errors'] = obj.errors.as_data() result = json.dumps(ret, cls=JsonCustomEncoder) #JsonCustomEncoder是自定义的cls,用来转换ret中特殊的error字段类型 return HttpRespon(result) 类型二:对于queryset类型进行序列化 第一种:v的类型是未知的 from django.core import

明明白白:python网站设计框架django的模板templates路径的最终解决方法

一个提示 SyntaxError: EOL while scanning string literal :反斜杆错误 \\ 不是 \ 我的mysite工程的整个目录: C:\web\mysite>tree /F 卷 C 的文件夹 PATH 列表 卷序列号为 00000200 0007:9B9B C:. │  db.sqlite3 │  manage.py │ ├─blog │  │  admin.py │  │  admin.pyc │  │  forms.py │  │  forms.pyc

Python菜鸟之路:Python基础-线程、进程、协程

上节内容,简单的介绍了线程和进程,并且介绍了Python中的GIL机制.本节详细介绍线程.进程以及协程的概念及实现. 线程 基本使用 方法1: 创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入 import threading import time def worker(): time.sleep(2) print("test") for i in range(5): t = threading.Thread(target=

Python菜鸟之路一:Python基础-内置函数补充

常用内置函数及用法: 1. callable() def callable(i_e_, some_kind_of_function): # real signature unknown; restored from __doc__ """检查对象object是否可调用.如果返回True,object仍然可能调用失败:但如果返回False,调用对象ojbect绝对不会成功 Return whether the object is callable (i.e., some kin