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()装饰器函数做了以下事情:
- 如果当前用户没有登陆,跳转到settings.LOGIN_URL,并传递当前的绝对路径到URL请求参数中,例如:/accounts/login/?next=/polls/3/
- 如果当前用户已经登陆了,执行view方法。在view中的方法可以认为当前用户已经登陆了。
login_required方法接受两个参数:
- redirect_field_name:默认值是next。用来定义登陆成功之后的跳回之前访问界面的url。
- 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 # # 从字符串转换成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:\wamp\www\djangoprojects\chatbot\static'
python manage.py collectstatic,这样django会自动的把样式复制到你刚建立的目录里
10、 修改运行 端口号: python manager.py runserver 8001
diary of django的更多相关文章
- Python Django 前后端数据交互 之 HttpRequest、HttpResponse、render、redirect
在使用三神装的时候,首先当然是得要导入它们: from django.shortcuts import HttpResponse, render, redirect 一.HttpRequest捕获 ...
- 借助 Django 的 smart_str 和 smart_unicode 进行编码转换(转)
原文:http://www.dirk.sh/diary/using-django-smart_str-smart_unicode/ Django 为字符编码的转换提供了非常简洁的方法: 1.djang ...
- Django+xadmin打造在线教育平台(四)
七.授课机构功能 7.1.模板继承 (1)创建母板 把org-list.html拷贝到templates目录下,新建base.html,剪切org-list.html内容到里面 再修改一下静态文件的地 ...
- Django+xadmin打造在线教育平台(七)
十.授课教师 10.1.讲师列表页 拷贝teacher-list.html和teacher-detail.html到templates目录下 先改teacher-list.html,同样继承base. ...
- 第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页
第三百八十八节,Django+Xadmin打造上线标准的在线教育平台—网站列表分页 分页可以用一个第三方分页模块django-pure-pagination 下载地址:https://github.c ...
- Django笔记 —— 模板高级进阶
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— 高级视图和URL配置
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Python升级3.6 强力Django+Xadmin打造在线教育平台
第 1 章 课程介绍 1-1 项目演示和课程介绍: 第 2 章 Windows下搭建开发环境 2-1 Pycharm.Navicat和Python解释器的安装: Pycharmhttp://www.j ...
- Django开发博客(七)——markdown优化
背景 上一次把markdown集成之后.发现还是有非常多问题. 这次须要做一些优化. 1.markdown与普通文本的差别显示. 2.添加点击量的统计 3.加入名片卡的滑动 版本号相关 操作系统:Ma ...
随机推荐
- UVa 10118 免费糖果(记忆化搜索+哈希)
https://vjudge.net/problem/UVA-10118 题意: 桌上有4堆糖果,每堆有N颗.佳佳有一个最多可以装5颗糖的小篮子.他每次选择一堆糖果,把最顶上的一颗拿到篮子里.如果篮子 ...
- C#在服务端验证客户端证书(Certificate)
使用https协议进行通讯的时候可以设置双向证书认证,客户端验证服务端证书的方法前面已经介绍过了,现在说一下在服务端验证客户端证书的方案. 这里给出的方案比较简单,只需要在Service端的配置文件中 ...
- hdu 4352 XHXJ's LIS 数位dp+状态压缩
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4352 XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others ...
- shell 布尔运算
布尔运算 Bash 里的逻辑运算,与.或.非. 在 Shell 下如何进行逻辑运算 范例:true or false 单独测试 true 和 false,可以看出 true 是真值,false 为假 ...
- c++ 算法 栅格中两点之间连线
屏幕划线,通过平面坐标系实现,基本组成是一个一个的点,起点为A,终点为B 本文的算法,可以实现平面栅格中,指定的A,B两点之间进行连线(代码中仅打印了两点间需要画出的坐标点) #include < ...
- 【转】libxml2 如何获得某个节点的所有信息
网址:http://bbs.csdn.net/topics/380115580 顶楼: 我的需求是这样的,我使用libxml2从内存中解析一个xml文件,需要修改某个节点下的一个子节点,修改完成之后, ...
- 《剑指offer》第三十八题(字符串的排列)
// 面试题38:字符串的排列 // 题目:输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc, // 则打印出由字符a.b.c所能排列出来的所有字符串abc.acb.bac.bca ...
- Longest Repeating Character Replacement
2018-06-29 22:56:24 问题描述: 问题求解: 本题是一条字符串问题,且是求Optimal,自然最初想到的是使用DP来进行求解,但是问题就是如果采用DP的话,前一个状态也太多了,和替换 ...
- ubuntu10.04 交叉编译 aria2 总结
1) google之后,找到 这个 https://github.com/z24/pitv/tree/master/cross 的脚本, 觉得非常好. 于是准备用来进行编译 2) 安装交叉编译器 su ...
- C#特征备忘
[assembly:System.CLSCompliant(true)]----利用CLSCompliant属性,可以把程序集标记为与CLS兼容,但仍可以将个别方法的CLSCompliant值设为fa ...