django 笔记3
FBV
function base view url.py
index -> 函数名
view.py
def 函数(requset):
... CBV
class base view
/index/ -》 函数名
/index/ -> 类 方法
######################################
from django.views import View
class Home(View):
def dispatch(self, request, *args, **kwargs):
#调用父类中的dispatch 此方法可以类比为装饰器
print('before')
result = super(Home,self).dispatch( request, *args, **kwargs)
print('after')
return result def get(self,request):
print(request.method)
return render(request,'home.html') def post(self,request):
print(request.method)
return render(request, 'home.html')
####################################################
请求头
Request URL:http://127.0.0.1:8000/home/?
Request Method:GET
Status Code: OK
Remote Address:127.0.0.1: ############################################
from django.conf.urls import url
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^index/', views.index),
url(r'^login/', views.login),
url(r'^home/', views.Home.as_view())
]
############################################
dispatch()方法 用来反射找到get/post方法 .装饰器 路由系统
########################################
{% for y in user_dict.values %} {% for y in user_dict.keys %} {% for x,y in user_dict.items %}
<li>{{y}}</li>
{% endfor %} python for i in user_dict.keys():
python for i in user_dict.values():
python for i,j in user_dict.items(): 路由系统,URL
、url(r'^index/', views.index), url(r'index/', Views.Home.as_view()), /*from django.views import View*/ 、url(r'^index-(\d+).html', Views.detail), 正则 一类 url对应一个函数 开发了个查看详细页面
def detail(request, nid):
detail_info = USER_DICT[nid]
return render(request,'detail.html', {'detail_info':detail_info}) 、分组 根据?P<nid>
url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail), #分组
def detail(request, nid, uid): (#?P<nid>\d+) (?P<uid>\d+) 此时就与nid uid存放位置无关啦
pass
def detail(request, *args, **kwargs): #这就可以表示多个值传递 如果按顺序就放在args 为元组 如果传nid 就放在 kwargs 为字典
return HttpResponse(kwargs['nid']) 实战:
a: url(r'^detail-(\d+)-(\d+).html', views.detail),
def func(request, nid, uid):
pass b: url(r'^detail-(\d+)-(\d+).html', views.detail),
def func(request,*args):
return HttpResponse(args[]) c: url(r'^detail-(?P<nid>\d+)-(?P<uid>\d+).html', views.detail),
def func(request, *args,**kwargs):
kwargs = {'nid':, "uid":} 、 name 对URL路由关系进行命名,****** 以后可以根据此名称生成自己想要的URL *****
a: <form action="{% url 'indexx' %}" method="POST">
url(r'^index/', views.index, name='i1')
b: url(r'^cc/(\d+)/(\d+)' , views.index, name='i2'), c: url(r'^dd/(?P<nid>\d+)/(?P<uid>\d+)' , views.index, name='i3'), def func(request, *args, **kwargs):
from django.urls import reverse url1 = reverse('i1') #index/
url2 = reverse('i2', args=(, ,)) #cc//
url3 = reverse('i3', kwargs={"nid":,"uid":,}) dd// 模板语言
xxx.html
{% url "i1" %} #index/
{% url 'i2' %} #cc//
{% url nid= uid= %} #dd// 模板语言:
{% url "indexx" %}
{% url "indexx" %}
注:request.path_info 为当前的url {{ request.path.info }} 、url的分发
一级路径 主目录下 urls.py
from django.contrib import admin
from django.conf.urls import url,include
urlpatterns = [
url(r'^cmdb/', include("app01.urls")),
url(r'^db/', include("app02.urls")),
] 在app01下创建一个urls.py 二级路径
from django.contrib import admin
from django.conf.urls import url,include
from app01 import views urlpatterns = [
url(r'^login/', views.login),
]
django 笔记3的更多相关文章
- Web框架——Django笔记
Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序 ...
- Django笔记 —— Admin(Django站点管理界面)
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— 模型
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— MySQL安装
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— 模板
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- django笔记三之admin的管理
django笔记三之admin的管理 设置自动admin应用 vim todos/settings.py INSTALLED_APPS = ( 'django.contrib.admin', 新版本已 ...
- django笔记二之数据库
django笔记二之数据库 [同步数据库之前的操作] yum install MySQL-python.x86_64 -y 2)开启数据库服务并创建表 创建数据库设置 为utf8: create da ...
- django笔记-模型数据模板呈现过程记录(多对多关系)
首先,推荐一个网址:http://www.tuicool.com/articles/BfqYz2F,因为这里的比我的要有条理,更有利于各位的理解. 以下仅为为个人一次不完整的笔记: 环境:ubuntu ...
- django笔记1
最近在博客园看来越来越多的关于python的文章,我看到时感觉特别的好,因为我也是一个特别喜欢python这门语言,喜欢python的简洁.干净,简洁而不失强大. 最近在学习django的Model模 ...
- Django 笔记分享
Django是一个基于MVC构造的框架.但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model).模板(Template)和视图(Views), ...
随机推荐
- * ? 【a-z】【0-9】通配符 学习
通配符顾名思义就是通用的匹配信息的符号,比如星号(*)就是代表匹配零个或多个字符,问号(?)是代表匹配单个字符,中括号内加上数字[0-9]代表匹配单个阿拉伯数字的字符,而中括号内加上字母[abc]则是 ...
- centos安全配置
http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0819/8506.html 引言: 我们必须明白:最小的权限+最少的服务=最大的安全 ...
- centos6.5安装配置nginx+php+mysql+httpsqs+ttserver+redis
一.准备 1.nginx, http://nginx.org/download/nginx-1.5.12.tar.gz 2.pcre, ftp://ftp.csx.cam.ac.uk/pub/soft ...
- Linux 设备驱动之 UIO 机制(基本概念)
一个设备驱动的主要任务有两个: 1. 存取设备的内存 2. 处理设备产生的中断 对于第一个任务.UIO 核心实现了mmap()能够处理物理内存(physical memory),逻辑内存(logica ...
- 程序设计基石与实践系列之编写高效的C程序与C代码优化
原文出处: codeproject:Writing Efficient C and C Code Optimization 虽然对于优化C代码有非常多有效的指导方针,可是对于彻底地了解编译器和你工作的 ...
- ACM POJ 1146 ID Codes
题目大意:输入一个字符串.输出它的下一个字典序排列. 字典序算法思想: 1.从右向左寻找字符串找出第一个a[i]<a[i+1]的位置i; 2.从右向左找出第一个大于a[i]的元素a[j]; 3. ...
- 数位DP CF388D - Fox and Perfect Sets
题目地址 一个整数perfect集合满足性质:集合中随意两个整数的异或和仍在这个集合中. 求最大数不超过K的perfect集合的个数. 每一个集合都是一个线性的向量空间. .能够通过全然的高斯消元得出 ...
- sass04 嵌套、继承、占位符
demo1.scss body{ //选择器嵌套 background-color:lightgray; header{ background-color:lightgreen; } footer{ ...
- 1.MySQL与MongoDB的操作对比,以及区别
转自:https://www.cnblogs.com/chris-oil/p/4982490.html MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoD ...
- C++字节对齐与结构体大小计算
转载注明出处:http://pppboy.blog.163.com/blog/static/30203796201082494026399/ 感谢原创博主的辛勤成果. 说明: 结构体的sizeof值, ...