python笔记20181229

FBV,CBV

FBV(function base views) 就是在视图里使用函数处理请求,也是我们最开始接触和使用的方式。

urls.py

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/$', views.login),
]
views.py
def login(request):
    message = ""

    if request.method == "POST":
        user = request.POST.get('username')
        pwd = request.POST.get('password')
        c = Administrator.objects.filter(username=user, password=pwd).count()
        if c:
            request.session['is_login'] = True
            request.session['username'] = user
            return redirect('/index.html')
        else:
            message = "用户名或密码错误"

    return render(request, 'login.html', {'msg': message})
    ```

CBV(class base views) 就是在视图里使用类处理请求。
urls.py
urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^login/$’, views.Login.as_view()),
]


views.py
from django import views
from django.utils.decorators import method_decorator

class Login(View):
def get(self, request, *args, **kwagrs):
return render(request, ‘login.html’)

def post(self, request, *args, **kwagrs):
    user = request.POST.get('username')
    pwd = request.POST.get('password')
    c = Administrator.objects.filter(username=user, password=pwd).count()
    if c:
        request.session['is_login'] = True
        request.session['username'] = user
        return redirect('/index.html')
    else:
        message = "用户名或密码错误"
        return render(request, 'login.html', {'msg': message})
        ```

serializers序列化
django的序列化框架提供了一个把django对象转换成其他格式的机制,通常这些其他的格式都是基于文本的并且用于通过一个管道发送django对象,但一个序列器是可能处理任何一个格式的(基于文本或者不是)
serializers的方法
from django.core import serializers
data = serializers.serialize(“xml”, SomeModel.objects.all())

序列化指定字段
from django.core import serializers
data = serializers.serialize(‘xml’, SomeModel.objects.all(), fields=(‘name’,‘size’))

序列化继承模型
class Place(models.Model):
name = models.CharField(max_length=50)

class Restaurant(Place):
serves_hot_dogs = models.BooleanField(default=False)

如果你只序列化餐厅模型:
data = serializers.serialize(‘xml’, Restaurant.objects.all())
如果你需要完全序列化

all_objects = list(Restaurant.objects.all()) + list(Place.objects.all())
data = serializers.serialize(‘xml’, all_objects)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值