• django 学习-16 Django会话Cookie


    1、django.admin.py  startproject   cs3

    cd cs3

    django.admin.py   startapp   blog

    2、    vim urls.py

    url(r'^regist/$','blog.views.regist'),       注册
        url(r'^login/$','blog.views.login'),   登录
        url(r'^index/$','blog.views.index'),      跳转界面
        url(r'^logout/$','blog.views.logout'),    注销
    )

    3、vim blog/views.py

    from   django  import  forms
    from django.http  import  HttpResponse
    from django.shortcuts  import  render_to_response
    from  models  import User
    class UserForm(forms.Form):
            username =  forms.CharField()
            password = forms.CharField(widget=forms.PasswordInput)


    def regist(req):
            if req.method == "POST":
                    uf = UserForm(req.POST)
                    if uf.is_valid():
                            username = uf.cleaned_data['username']
                            password = uf.cleaned_data['password']
                            User.objects.create(username=username,password=password)
                            return HttpResponse('ok')
            else:
                    uf = UserForm
            return render_to_response('regist.html',{'uf':uf})

    4、vim blog/templates/regist.html

    <form method="post">
    {{uf.as_p}}
    <input type="submit" value='nice'/ >
    </form>
    5、      python  manage.py syncdb

      python manage.py   runserver

    进入页面去试一试127.0.0.1:8000/regist

    6、vim blog/views.py

    增加这些

     from django.http import HttpResponseRedirect

     def login(req):
     23         if req.method == "POST":
     24                 uf = UserForm(req.POST)
     25                 if uf.is_valid():
     26                         username = uf.cleaned_data['username']
     27                         password = uf.cleaned_data['password']
     28                         users = User.objects.filter(username__exact=username,password__exact=password)
     29                         if users:
     30                                 return HttpResponseRedirect('/index/')
     31                         else:
     32                                 return HttpResponseRedirect('/login/')
     33         else:
     34                 uf = UserForm()
     35         return render_to_response('login.html',{'uf':uf})
     36 def index(req):
     37         return HttpResponse('ok')

    再去试一试127.0.0.1:8000/login   会跳转到index   127.0.0.1:8000/index   直接访问index会返回OK

    6、vim blog/views.py      顺便cp  regist.html  login.html

    def index(req):
            username = req.COOKIES.get('username','')           用cook获取用户名,在网页界面还可以去查找,在freference-->privacy-->选use custome                                                         for settings  history -->show cookies就可以看到了

            return render_to_response('index.html', {'username':username})
    def logout(req):
            response = HttpResponse('logout')
            response.delete_cookie('username')                        cookie 的删除方式
            return response
        7  、 vim blog/templates/index.html        

      <div>

    <h1>welcome {{username}}</h1>
    <a href='/logout/'>logout</a>
    </div>
    这样index下就会有个logout可以选择退出

  • 相关阅读:
    windows anaconda下安装Python的tesserocr库
    windows10上安装docker与碰到的坑
    阿里云centos下部署python flask应用。
    LeetCode--Python合并两个有序链表
    Linux(CentOS)下重置MySQL根(Root)密码,以及远程登录mysql连接IP受限问题解决
    windows下anaconda安装词云wordcloud
    关于selenium使用中谷歌浏览器驱动chromedriver的问题
    LeetCode 184. Department Highest Salary(找出每个部门中最高薪水)
    机器学习七--回归--多元线性回归Multiple Linear Regression
    机器学习六--回归--简单线性回归Simple Linear Regression
  • 原文地址:https://www.cnblogs.com/Icanflyssj/p/5134650.html
Copyright © 2020-2023  润新知