Django开发汇总
基本配置
# 设置数据库为使用的mysql
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'library',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': '10.18.99.166',
        'PORT': '3306',
    }
}
# 设置语言为 中文
LANGUAGE_CODE = 'zh-hans'
# 设置时区为 中国
TIME_ZONE = 'Asia/Shanghai'
# 自定义模块 与 静态文件 位置
TEMPLATES = [
    {
    ...
'DIRS': [os.path.join(BASE_DIR,  'templates')],
    ...
	},
]
# 静态文件目录,为包含一个元素的元组; 此句放于 STATIC_URL='/static' 语句后
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)    
一、 Form 表单
1、在获取信息较多时,使用Django自带的form类比较简单,其又分为以下两类
form 与 modelForm:
前者获取信息,不需要存入数据库;
后者获取信息,一般需要存入数据库;
from django import forms
class LoginForm(forms.Form):
  username = forms.CharField()
  password = forms.CharField(label="密码",widget=forms.PasswordInput)
在注册与更新时,CreateView更简单,直接使用即可,但是若是需要注册的信息需要各种校验还是自定义一个RegisterForm比较方便。
2、在select需要联动时,可以考虑自定义form
3、在数据量所需更少时,可以直接通过ajax传递数据
二、自带管理系统使用
创建管理员账号 Superuser
虚拟环境中输入 python manage.py createsuperuser
# 新建用户,在用户注册时常使用,此处的User可以为继承了AbstractUser的自定义User
u = User.objects.create_user(username=username, password=password, email=email)
# 获取登录后的用户信息,以用户名字为例
user_name = request.user.username 
注册、登录、密码修改的实现方式
1、注册
在注册时,因为有特殊需要,所以手写了一个RegisterFrom(forms.Form),此处加入一些多选框。在获取到前端传过来的数据后,通过楼上的新建用户实现用户的注册。
2、登录
也是自定义一个简单Form(forms.Form),通过获取前端传过来的数据,使用 user = authenticate(username=cd['username'],password=cd['password']),验证用户输入是否正确实现登录。
3、密码修改
使用了自带的PasswordChangeView(),自定义了前端模板实现。
以上,都有使用django自带的功能实现需求。
权限管理
from django.contrib.auth.models import Permission
# 在Views.py中检查用户权限
myuser.hasperm('appname.haha') # 传递参数时要加入model所属app
# 或是在HTML模板里
{% if perms.appname%}   #
  <p>You have permission to do something in the appname.</p>
  {% if perms.appname.can_vote %}
    <p>You can vote!</p>
  {% endif %}
{% else %}
  <p>You dont have permission to do anything in the appname.</p>
{% endif %}
# 增删权限
myuser.user_permissions.add(per1,per2)
myuser.user_permissions.remove(per1,per2)
myuser.user_permissions.clear() # 清空权限
user.get_all_permissions() # 列出用户所有权限,返回值为permission_name的list
user.get_group_permissions() # 列出用户 所属group的权限
三、界面信息展示
1、后端传回queryset,前端用 模板语言遍历到表格中。若是想用datatable处理之,则在datatable初始化时对各列重命名,例
<tbody>
{% for a in queryset %}
<tr>
  <td hidden>{{a.id}}</td>
  <td>{{ a.name }}</td>
</tr>
{% endfor %}
</tbody>
<script>
  var table = $('#table_id').DataTable({
    columns:[
      {data:'id'},
      {data:'name'},
    ]
  })
  table.select.style('os') # 想多选行时使用
</script>
2、前端在datatable中直接通过自带的ajax功能,获取数据。
1、登录认证 参考
https://www.cnblogs.com/lvye001/p/10141365.html
https://www.cnblogs.com/zhanghongfeng/p/8331493.html
Django开发汇总的更多相关文章
- django开发个人简易Blog——数据模型
		
提到数据模型,一定要说一下MVC,MVC框架是现代web开发中最流行的开发框架,它将数据与业务逻辑分开,减小了应用之间的高度耦合.个人非常喜欢MVC开发框架,除了具有上述特性,它使得web开发变得非常 ...
 - Django开发笔记之数据库的设计
		
后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原 ...
 - django开发的社区和博客
		
社区 线上地址:http://codetheme.sinaapp.com/ Githubhttps://github.com/BeginMan/codetheme 由于利用两周下班时间熬夜做的,难免有 ...
 - django开发中利用 缓存文件 进行页面缓存
		
首先我们先来了解下浏览器的缓存 浏览器缓存机制 Cache-control策略 Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是 ...
 - Django开发基础----创建项目/应用
		
环境: 1.python 3.6.2 2.安装django:pip install django==1.10.3 *下面以开发一个简单的用户签到系统介绍Django的使用 创建Django项目: 命 ...
 - django开发新手教程(原创)
		
为了帮助新手简单高效解决django开发的问题,从而写了这么一篇,随便转载! 本人用的是windows10操作系统 #联网安装 ==指定版本号 我在自定义的www文件夹安装C:\Users\ ...
 - 在 ubuntu18.04 中搭建 Django 开发环境
		
在Ubuntu 18.04 安装 python3.pip3.pycharm,搭建 Django 开发环境. 1.安装 python3 pip3 sudo apt-get install python3 ...
 - Django开发目录
		
Django开发[第一章]:Django基础和基本使用 Django开发[第二章]:Django URLConf 进阶 Django开发[第三章]:Django View 进阶 Django开发[第四 ...
 - Pycharm搭建Django开发环境
		
Pycharm搭建Django开发环境 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们大家都知道Django是python都一个web框架,因此大家需要自行安装python环境 ...
 
随机推荐
- linux  3个快捷方式
			
Ctrl+c组合键:当同时按下键盘上的Ctrl和字母c的时候,意味着终止当前进程的运行.假如执行了一个错误命令,或者是执行某个命令后迟迟无法结束,这时就可以冷静地按下Ctrl+c组合键,命令行终端的控 ...
 - 如何在Apple Silicon Mac上主动安装Rosetta2
			
前提是您的电脑搭载了Apple Silicon处理器 command + space(空格),输入"终端",打开. 输入 : softwareupdate --install-ro ...
 - helm安装csi-driver-nfs-v4.1.0
			
Application version v4.1.0 Chart version v4.1.0 获取chart包 helm repo add csi-driver-nfs https://raw.gi ...
 - 【多服务场景化解决方案】智能家居(UrbanHome)
			
 介绍 UrbanHome是一款提供房屋维修服务的移动应用.如有维修需求,用户可通过该应用联系所在城市的管道工,电工,保洁,漆匠,木匠,修理工等,或是搜寻导航附近的维修商店. 通过构建UrbanHo ...
 - 如何使用memstat 插件分析内存泄漏问题
			
对于内存泄漏问题,如何分析并找到内存泄漏的原因是个难点.KingbaseES 提供了memstat 扩展插件用于分析内存泄漏的原因. 一.使用 memstat 插件 1.修改shared_preloa ...
 - C/C++ Capstone 引擎源码编译
			
Capstone 是一个轻量级的多平台.多架构的反汇编框架.Capstone 旨在成为安全社区中二进制分析和反汇编的终极反汇编引擎.Capstone的编译非常简单只需要一步即可轻松得到对应的Lib库文 ...
 - logstash接受checkpoint防火墙日志并用ruby分词
			
直接上logstahs配置文件 input{ syslog{ type => "syslog" port => 514 } } filter { grok { matc ...
 - 《Java基础——循环语句》
			
Java基础--循环语句 1. while语句: 规则: 1. 首先计算表达式的值. 2. 若表达式为真,则执行循环语法,直至表达式为假,循环结束. 格式: while(表达式) 语句 ...
 - Django提交时报错
			
错误描述: RuntimeError at /saveBlog You called this URL via POST, but the URL doesn't end in a slash and ...
 - day42-反射01
			
Java反射01 1.反射(reflection)机制 1.1反射机制问题 一个需求引出反射 请看下面问题: 根据配置文件 re.properties 指定信息,创建Cat对象并调用方法hi clas ...