基本配置

# 设置数据库为使用的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开发汇总的更多相关文章

  1. django开发个人简易Blog——数据模型

    提到数据模型,一定要说一下MVC,MVC框架是现代web开发中最流行的开发框架,它将数据与业务逻辑分开,减小了应用之间的高度耦合.个人非常喜欢MVC开发框架,除了具有上述特性,它使得web开发变得非常 ...

  2. Django开发笔记之数据库的设计

    后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原 ...

  3. django开发的社区和博客

    社区 线上地址:http://codetheme.sinaapp.com/ Githubhttps://github.com/BeginMan/codetheme 由于利用两周下班时间熬夜做的,难免有 ...

  4. django开发中利用 缓存文件 进行页面缓存

    首先我们先来了解下浏览器的缓存 浏览器缓存机制 Cache-control策略 Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是 ...

  5. Django开发基础----创建项目/应用

    环境: 1.python  3.6.2 2.安装django:pip install django==1.10.3 *下面以开发一个简单的用户签到系统介绍Django的使用 创建Django项目: 命 ...

  6. django开发新手教程(原创)

    为了帮助新手简单高效解决django开发的问题,从而写了这么一篇,随便转载! 本人用的是windows10操作系统 #联网安装 ==指定版本号      我在自定义的www文件夹安装C:\Users\ ...

  7. 在 ubuntu18.04 中搭建 Django 开发环境

    在Ubuntu 18.04 安装 python3.pip3.pycharm,搭建 Django 开发环境. 1.安装 python3 pip3 sudo apt-get install python3 ...

  8. Django开发目录

    Django开发[第一章]:Django基础和基本使用 Django开发[第二章]:Django URLConf 进阶 Django开发[第三章]:Django View 进阶 Django开发[第四 ...

  9. Pycharm搭建Django开发环境

    Pycharm搭建Django开发环境 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们大家都知道Django是python都一个web框架,因此大家需要自行安装python环境 ...

随机推荐

  1. 禁止mysql自动更新

    每到00:00时,MySQL弹出小黑框 这是mysql在自动检测更新 右键"此电脑",点击"管理" 依此操作即可

  2. Android、iOS平台RTMP/RTSP播放器实时音量调节

    介绍移动端RTMP.RTSP播放器实时音量调节之前,我们之前也写过,为什么windows播放端加这样的接口,windows端播放器在多窗口大屏显示的场景下尤其需要,尽管我们老早就有了实时静音接口,相对 ...

  3. 几款优秀的点播、RTSP/RTMP直播播放器介绍

    1.ijkplayer 项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Andr ...

  4. 常用的工具函数助力JavaScript高效开发

    前言 日常开发中,面对各种不同的需求,我们经常会用到以前开发过的一些工具函数,把这些工具函数收集起来,将大大提高我们的开发效率. 1.校验数据类型 export const typeOf = func ...

  5. 《Java基础——线程类》

    Java基础--线程类       一.线程的创建之Thread类: 规则: 通过声明一个新类作为子类继承 Thread 类,并复写 run() 方法,就可以启动新线程并执行自己定义的 run()方法 ...

  6. Java套接字实现应用程序对数据库的访问

    最近在完成软件体系结构上机实验时,遇到一个有点点小难度的选做题,题目信息如下: 利用套接字技术实现应用程序中对数据库的访问.应用程序只是利用套接字连接向服务器发送一个查询的条件,而服务器负责对数据库的 ...

  7. ProxySQL Cluster 高可用集群 + MySQL MGR环境部署 (多写模式) 部署记录

    文章转载自:https://blog.51cto.com/u_6215974/4937192 ProxySQL 在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数 ...

  8. 第六章:Django 综合篇 - 2:核心配置项

    Django的默认配置文件中,包含上百条配置项目,其中很多是我们'一辈子'都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册. 强调:配置的默认值不是在settings.py文件中!不要以为 ...

  9. ELasticsearch忘记密码后重置超级用户密码

    创建一个临时的超级用户TestSuper: [root@cfeea elasticsearch]# ./bin/elasticsearch-users useradd TestSuper -r sup ...

  10. 在 CentOS 8/RHEL 8 上安装和使用 Cockpit

    Cockpit 是一个基于 Web 的服务器管理工具,可用于 CentOS 和 RHEL 系统.最近发布的 CentOS 8 和 RHEL 8,其中 cockpit 是默认的服务器管理工具.它的软件包 ...