Day19内容回顾

 

1,Django请求的生命周期
	路由系统-视图函数(获取模板+数据->渲染)->字符串返回给用户
2,路由系统	
	/index/                  函数或类.as_view()
	/detail(\d+)/            函数或类.as_view()
	/detail(?P<nid>\d+)/     函数或类.as_view()(参数)
	/detail/                 路由分发include("app01.urls")
	/detail/ name='a1'       路由分发include("app01.urls")
							 视图中:reverse
							 模板中:{% url "a1"%}
3,视图
	FBV:函数 def index(request,*args,**kwargs):
	CBV:类   class Home(views.view):
				def get(self,request,"args"):
				dispatch
	获取用户请求中的数据
		request.method
		request.POST.get
		request.GET.get
		request.FILES.get
		#checkbox,
		request.......getlist()
		request.path_info
		
		文件对象=request.FILES.get()
		文件对象.name 
		文件对象.size
		文件对象.chunks()
		
		<form 特殊的设置></form>
		
	给用户返回数据:
		HttpResponse
		render(request,'index.html模板文件的路径',{'user':user})
		redirect("url")
4,模板语言:
	render(request,"模板文件的路径",{'obj':1234,'k1':[1,2,3,4],"k2":{'name':'张扬','age':73})
	
	{{obj}}     1234
	{{k1.3}}----4
	{{k2.name}}----张扬
	{% for i in k1 %}
		<p> {{i}} </p>
	{% endfor %}
	
	{% for k in k2.keys %}
		<p> {{k}} </p>
	{% endfor %}

	{% for v in k2.values %}
		<p> {{row}} </p>
	{% endfor %}
	
	{% for k,v in k2.items %}
		<p> {{k}}-{{v}} </p>
	{% endfor %}
	
5,ORM
	a.创建类和字段
		class User(models.Model)
			uid=models.IntegerField()
			name=models.CharField(max_length=12) #字符长度
		python manage.py makemigrations
		python manage.py migrate
		
		#settings.py中注册APP
	b.操作,注意字典的操作
		增:models.User.objects.create(name='Alex',age=18)
		  dic={'name':'xx','age':19}
		  models.User.objects.create(**dic)
		  
		  obj=models.User(name='Jack',age=18)
		  obj.save()
		  
		删:models.User.objects.filter(id=12).delete()
		
		改:models.User.objects.filter(id__gt=1).update(name='Jack')
		  dic={'name':'xx','age':19}
		  models.User.objects.filter(id__gt=1).update(**dic)
		  
		  
		查:models.User.objects.filter(uid=12)
		  models.User.objects.filter(uid__gt=12 大于
		  models.User.objects.filter(uid__lt=12) 小于
		  models.User.objects.filter(uid__gte=12) 大于等于
		  models.User.objects.filter(uid__lte=12) 小于等于
		  
		  dic={'name':'xx','age':19}
		  models.User.objects.filter(**dic)
6,外键操作		
		class UserType(models.Model)
			caption=models.CharField(max_length=32)
			
		#1,普通
		#2,VIP用户
		#3,游客
		
		class User(models.Model)
			uid=models.IntegerField()
			name=models.CharField(max_length=12) #字符长度
			user_type_id=models.IntergerField() #此时的数值大小没有约束
			user_type=models.ForeignKey("UserType",to_field='id') #约束
		name  age user_type_id
		#张扬  18     1
		#李四  20     2

 

posted on 2017-09-27 14:49  momo8238  阅读(82)  评论(0编辑  收藏  举报