zoukankan      html  css  js  c++  java
  • diary of django

    1、安装django -> pip install django 

     ----- 某些时候竟然需要翻墙

    2、JsonResponse 需要    (不需要了,django.http自带

     pip install django-json-response

    2、安装mysql模块 (python 3)

    pip install mysqlclient     最近装了一次,竟然一直不成功。 555 ~ pip install mysqlclient==1.3.10  这样却是成功的。

    3、利用 django 的 auth模块实现登录,登出

    from django.contrib.auth import authenticate,login,logout
    
    
    def login_ses(request):
        username = request.GET.get('username')
        password = request.GET.get('password')
    
        # 一般方法
        # ls = User.objects.filter(username=username)
        # if ls.exists():
        #     request.session['isLogin'] = True
        #     request.session['username'] = username
        # else:
        #     return JsonResponse({'code':-1})
        user = authenticate(username=username,password=password)
        if user is not None:
            login(request, user)
        else:
            return JsonResponse({'code': -1})
        return JsonResponse({'code':0,'msg':'ok'})
    
    def login_out(request):
        # request.session['isLogin'] = False
        # request.session['username'] = None
        logout(request)
        return JsonResponse({'code':0})
    
    def saveUser(request):
        print('-'*222)
        print(request.user.is_authenticated)
        if __is_login(request):
            return JsonResponse({'code':-1,'msg':'isLogined'})
    
        # return JsonResponse({'code':-1})
        dic = json.loads(request.body)
        username = dic.get('username')
        password = dic.get('password')
    
        if not all([username,password]):
            return JsonResponse({'code':-1})
        try:
            User.objects.create_user(username=username,password=password)
        except Exception as e:
            return JsonResponse({'code':-1})
    
        return JsonResponse({'code':0})
    
    def __is_login(request):
        # return request.session.get('isLogin',False)
        return request.user.is_authenticated

     4、登录验证装饰器(decorator)使用:

      django.contrib.auth.decorators.login_required([redirect_field_name=REDIRECT_FIELD_NAME,login_url=None])

      login_required()装饰器函数做了以下事情:

    1. 如果当前用户没有登陆,跳转到settings.LOGIN_URL,并传递当前的绝对路径到URL请求参数中,例如:/accounts/login/?next=/polls/3/
    2. 如果当前用户已经登陆了,执行view方法。在view中的方法可以认为当前用户已经登陆了。

       login_required方法接受两个参数:

    1. redirect_field_name:默认值是next。用来定义登陆成功之后的跳回之前访问界面的url。
    2. login_url:默认值是settings.LOGIN_URL。用来指定登陆界面的url。如果不传入改参数,就需要确保settings.LOGIN_URL的值是正确设置的。

      

    from django.contrib.auth.decorators import login_required
     
    # 没有参数的情况
    @login_required
    def my_view(request):
        ...
    
    
    # 有参数的情况 
    @login_required(redirect_field_name='my_redirect_field')
    def my_view(request):
        ...
    
    @login_required(login_url='/accounts/login/')
    def my_view(request):
        ...

     5、创建超级管理员:python manage.py createsuperuser  , 然后修改app的 admin.py 将model加入管理 如下图所示:

      

           然后:输入 localhost:8000/admin 登录

    6、时间处理之arrow:

      

    #格式化要加 时区哦
    arrow.now().to('Asia/Shanghai').format("YYYY-MM-DD HH:mm:ss")
    
    # 转换成timestamp
    
    t = arrow.utcnow()
    
    t.timestamp   # 1485937837
    
    # 从字符串转换成Arrow对象
    arrow.get("2017-01-20 11:30", "YYYY-MM-DD HH:mm")
    
    # 从时间戳转化为Arrow对象
    arrow.get(1485937858.659424)
    
    # 直接生成Arrow对象
    arrow.get(2017, 2, 1)
    
    # 时间推移
    
    t = arrow.now()
    t.shift(days=-1)  # 前一天
    t.shift(weeks=-1)  # 前一周
    t.shift(months=-2) # 前两个月
    t.shift(years=1)  # 明年

     7、mysql存入中文存不进去的情况:  ②有效

         ① 修改数据表编码为utf8:  alter table employees character set utf8

      ② 修改数据表中所有字段编码为utf8:   alter table `tablename` convert to character set utf8; 

           ③  修改数据库编码为utf8:  alter database enterprises character set utf8

      8、  遇到接口访问不到的情况  请

      

       9、   管理员页面无样式

      STATIC_ROOT = 'D:wampwwwdjangoprojectschatbotstatic' 
           python manage.py collectstatic,这样django会自动的把样式复制到你刚建立的目录里

        10、 修改运行 端口号: python manager.py runserver 8001

  • 相关阅读:
    Swift语言指南(三)--语言基础之整数和浮点数
    Swift语言指南(二)--语言基础之注释和分号
    Swift语言指南(一)--语言基础之常量和变量
    Swift中文教程(七)--协议,扩展和泛型
    Swift中文教程(六)--枚举和结构
    Swift中文教程(五)--对象和类
    Swift中文教程(四)--函数与闭包
    集合
    java中的集合
    java中集合的使用
  • 原文地址:https://www.cnblogs.com/Mvloveyouforever/p/8544252.html
Copyright © 2011-2022 走看看