Django框架学习笔记(12.基本知识小总结)

1.Django请求的生命周期:

    路由系统    ->    视图函数(获取模板+数据->渲染)    ->    返回给用户字符串

2.路由系统:

    URL    如/index/    ->    函数,类.as_view()

    正则表达式    如/detail/(\d+)    ->    函数(参数),类.as_view()(参数)

    正则表达式    如/detail/(?P<uid>\d+)    ->    函数(参数:uid),类.as_view()(参数:uid)

    路由分发    在建立的app里面写类似的对应,如:

url(r'^cmdb/', include("app01.urls")),

    对应关系命名    如/detail/    name='a1'    ->视图中:reverse

                                                                    ->模板中:{% url 'a1' %}


3.视图函数:

    FBV:函数

        def index(request,*args,**kwargs):

    CBV:类

        class Home(views.View):

            def get(self,*args,**kwargs):

   

    获取用户请求的数据:

        request.POST.get()

        request.GET.get()

        request.FILES.get()

        ...............getlist()

    上传文件:

obj = request.FILES.get("文件名")
obj.name    #文件名
obj.size    #上传文件的字节
obj.chunks  #分块取数据

要上传文件时候要在form表单加入特殊的设置


    返回数据:

1.redirect("URL")
2.render(request,"HTML模板的路径", {用于渲染的字典})
3.HttpResponse("字符串")


4.模板语言:

示例:

render(request,"HTML模板的路径", {'obj':1234,'k1':[1,2,3,4],'k2':{'name':'root','age':19}})

在模板中:

取单值:

{{ obj }}


取列表中的元素:

{{ k1.0 }}

获取字典中的元素:

{{ k2.name }}

循环取列表:

{% for i in k1 %}
    {{ i }}
{% endfor %}


循环取字典:

循环keys
{% for row in k2.keys %}
    {{ row }}
{% endfor %}

循环values
{% for row in k2.values %}
    {{ row }}
{% endfor %}

循环key和value
{% for k,v in k2.items %}
    {{ k }}-{{ v }}
{% endfor %}



5.ORM:

a.创建类和字段

class UserInfo(models.Model):
    id = models.IntegerField()
    username = models.CharField(max_length=32)

(注意在settings.py中注册新建的app)

            python manage.py makemigrations

            python manage.py migrate


b.操作:上一节有讲过,新补充一些:

models.UserInfo.objects.filter(id__gt=1).delete() #id>1
models.UserInfo.objects.filter(id__lt=1).delete() #id<1
models.UserInfo.objects.filter(id__lte=1).delete() #id<=1,大于等于相似

models.UserInfo.objects.filter(id__gt=1).update(name='root',age=18)
dic = {
    'name':'root',
    'age':18
}
models.UserInfo.objects.filter(id__gt=1).update(**dic)

models.UserInfo.objects.filter(name=1, age=19)
dic1 = {
    'name': 'root',
    'age__gt':18
}
#注意这里看可以给key加上__gt
models.UserInfo.objects.filter(**dic1)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值