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模块实现登录,登出

  1. from django.contrib.auth import authenticate,login,logout
  2.  
  3. def login_ses(request):
  4. username = request.GET.get('username')
  5. password = request.GET.get('password')
  6.  
  7. # 一般方法
  8. # ls = User.objects.filter(username=username)
  9. # if ls.exists():
  10. # request.session['isLogin'] = True
  11. # request.session['username'] = username
  12. # else:
  13. # return JsonResponse({'code':-1})
  14. user = authenticate(username=username,password=password)
  15. if user is not None:
  16. login(request, user)
  17. else:
  18. return JsonResponse({'code': -1})
  19. return JsonResponse({'code':0,'msg':'ok'})
  20.  
  21. def login_out(request):
  22. # request.session['isLogin'] = False
  23. # request.session['username'] = None
  24. logout(request)
  25. return JsonResponse({'code':0})
  26.  
  27. def saveUser(request):
  28. print('-'*222)
  29. print(request.user.is_authenticated)
  30. if __is_login(request):
  31. return JsonResponse({'code':-1,'msg':'isLogined'})
  32.  
  33. # return JsonResponse({'code':-1})
  34. dic = json.loads(request.body)
  35. username = dic.get('username')
  36. password = dic.get('password')
  37.  
  38. if not all([username,password]):
  39. return JsonResponse({'code':-1})
  40. try:
  41. User.objects.create_user(username=username,password=password)
  42. except Exception as e:
  43. return JsonResponse({'code':-1})
  44.  
  45. return JsonResponse({'code':0})
  46.  
  47. def __is_login(request):
  48. # return request.session.get('isLogin',False)
  49. 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的值是正确设置的。

  

  1. from django.contrib.auth.decorators import login_required
  2.  
  3. # 没有参数的情况
  4. @login_required
  5. def my_view(request):
  6. ...
  7.  
  8. # 有参数的情况
  9. @login_required(redirect_field_name='my_redirect_field')
  10. def my_view(request):
  11. ...
  12.  
  13. @login_required(login_url='/accounts/login/')
  14. def my_view(request):
  15. ...

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

  

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

6、时间处理之arrow:

  

  1. #格式化要加 时区哦
  2. arrow.now().to('Asia/Shanghai').format("YYYY-MM-DD HH:mm:ss")
  3.  
  4. # 转换成timestamp
  5.  
  6. t = arrow.utcnow()
  7.  
  8. t.timestamp #
  9.  
  10. # 从字符串转换成Arrow对象
  11. arrow.get("2017-01-20 11:30", "YYYY-MM-DD HH:mm")
  12.  
  13. # 从时间戳转化为Arrow对象
  14. arrow.get(1485937858.659424)
  15.  
  16. # 直接生成Arrow对象
  17. arrow.get(2017, 2, 1)
  18.  
  19. # 时间推移
  20.  
  21. t = arrow.now()
  22. t.shift(days=-1) # 前一天
  23. t.shift(weeks=-1) # 前一周
  24. t.shift(months=-2) # 前两个月
  25. 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:\wamp\www\djangoprojects\chatbot\static' 
       python manage.py collectstatic,这样django会自动的把样式复制到你刚建立的目录里

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

diary of django的更多相关文章

  1. Python Django 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect

    在使用三神装的时候,首先当然是得要导入它们: from django.shortcuts import HttpResponse, render, redirect   一.HttpRequest捕获 ...

  2. 借助 Django 的 smart_str 和 smart_unicode 进行编码转换(转)

    原文:http://www.dirk.sh/diary/using-django-smart_str-smart_unicode/ Django 为字符编码的转换提供了非常简洁的方法: 1.djang ...

  3. Django+xadmin打造在线教育平台(四)

    七.授课机构功能 7.1.模板继承 (1)创建母板 把org-list.html拷贝到templates目录下,新建base.html,剪切org-list.html内容到里面 再修改一下静态文件的地 ...

  4. Django+xadmin打造在线教育平台(七)

    十.授课教师 10.1.讲师列表页 拷贝teacher-list.html和teacher-detail.html到templates目录下 先改teacher-list.html,同样继承base. ...

  5. 第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页

    第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页 分页可以用一个第三方分页模块django-pure-pagination 下载地址:https://github.c ...

  6. Django笔记 —— 模板高级进阶

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  7. Django笔记 —— 高级视图和URL配置

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  8. Python升级3.6 强力Django+Xadmin打造在线教育平台

    第 1 章 课程介绍 1-1 项目演示和课程介绍: 第 2 章 Windows下搭建开发环境 2-1 Pycharm.Navicat和Python解释器的安装: Pycharmhttp://www.j ...

  9. Django开发博客(七)——markdown优化

    背景 上一次把markdown集成之后.发现还是有非常多问题. 这次须要做一些优化. 1.markdown与普通文本的差别显示. 2.添加点击量的统计 3.加入名片卡的滑动 版本号相关 操作系统:Ma ...

随机推荐

  1. hdu 5144 NPY and shot 物理+三分

    NPY and shot Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Pro ...

  2. webdriver 的三种等待方式

    1.显式等待  一个显式等待是你定义的一段代码,用于等待某个条件发生然后再继续执行后续代码. from selenium import webdriverfrom selenium.webdriver ...

  3. VC6的VCVARS32.BAT所在位置

    1. C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT 2.

  4. Android JNI学习(五)——Demo演示

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  5. C#通过Oracle.ManagedDataAccess无法访问Oralce

    问题描述:通过C#引用Oracle.ManagedDataAccess.dll访问Oracle,写了如下一段代码,在本机能正常访问,但是将编译后的exe放到服务器上面就无法访问了,一直提示登录失败.而 ...

  6. Bug in Code CodeForces - 420C (计数,图论)

    大意: 给定$n$结点无向图, 共n条边, 有重边无自环, 求有多少点对(u,v), 满足经过u和v的边数>=p 可以用双指针先求出所有$deg_u+deg_v \ge p$的点对, 但这样会多 ...

  7. C++中的赋值运算符重载函数(operator=)

    MyStr& operator =(const MyStr& str)//赋值运算符 { cout << "operator =" << e ...

  8. nyoj38

    布线问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:1.把所有 ...

  9. C#窗体控件简介ListBox(需整理)

    ListBox 控件 ListBox 控件又称列表框,它显示一个项目列表供用户选择.在列表框中,用户 一次可以选择一项,也可以选择多项. 1.常用属性: (1) Items属性: 用于存放列表框中的列 ...

  10. 84. Largest Rectangle in Histogram *HARD* -- 柱状图求最大面积 85. Maximal Rectangle *HARD* -- 求01矩阵中的最大矩形

    1. Given n non-negative integers representing the histogram's bar height where the width of each bar ...