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), ...
随机推荐
- puppet介绍与安装
puppet是什么puppet是一种基于ruby语言开发的Lnux.Unix.windows平台的集中配置管理系统.它使用自有的puppet描述语言,可管理配置文件file.用户user.cron任务 ...
- CAD二次开发(01)-绘制直线
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Java基础学习总结(46)——JAVA注解快速入门
各位开发童鞋,注解这个东西我们肯定每天都能看见,也许有时候看的太多了到是会忽略注解这东西具体是如何工作的.今天在这里用最短的篇幅快速讲解下注解的原理,对这块记的不太清楚的同学也可以再次看看,下次有人详 ...
- c++_benchMark_vector_list_deque
title: c++_benchMark_vector_list_deque date: 2015-08-01 22:32:39 作者:titer1 + ZhangYu 出处:www.drysalte ...
- lvs中dr模式配置脚本
1 dr模式介绍 1.1 lvs的安装 安装具体解释:http://blog.csdn.net/CleverCode/article/details/50586957. 1.2 lvs模式 lvs有三 ...
- Android图片旋转,缩放,位移,倾斜,对称完整演示样例(一)——imageView.setImageMatrix(matrix)和Matrix
MainActivity例如以下: import android.os.Bundle; import android.view.MotionEvent; import android.view.Vie ...
- Android 4.4 KitKat NotificationManagerService使用具体解释与原理分析(二)__原理分析
前置文章: <Android 4.4 KitKat NotificationManagerService使用具体解释与原理分析(一)__使用具体解释> 转载请务必注明出处:http://b ...
- POJ1502 MPI Maelstrom Dijkstra
题意 给出图,从点1出发,求到最后一个点的时间. 思路 单源最短路,没什么好说的.注意读入的时候的技巧. 代码 #include <cstdio> #include <cstring ...
- 当fastJson邂逅大写字段时
在项目中遇到了一件令人头疼的事.使用fastJson反序列化时下面的Json时,得到对象属性总为null(如下图),可能细心的朋友一看就知道问题出在哪里,没错!问题就出在返回的字段首字母给大写了.fa ...
- 关于Fragment的setUserVisibleHint() 方法和onCreateView()的执行顺序
1:setUserVisibleHint(boolean isVisibleToUser)的方法就很重要,根据方法名来看当前页面是否可见, 里面的boolean值就是判断当前页面是否可见的变量,所以大 ...