极客时间 - Django快速开发实战

2024-05-09 00:04

本文主要是介绍极客时间 - Django快速开发实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Django快速开发实战

  • 能够使用Django Admin快速搭建管理后台
  • 掌握Django管理后台的深度定制方法,能够添加定制的功能
  • Django中间件的工作原理,能够自己设计实现一个中间件
  • 能够使用Django快速为企业现有系统搭建管理后台
  • 精益创业的产品思维,结合Django1-2天快速迭代开发出有用的企业应用

初识Django:Django能做什么?

Django适用场景

  • 内容管理系统
    • 博客
    • CMS
    • Wiki
  • 企业内部系统
    • 会议室预定
    • 招聘管理
    • ERP & CRM
    • 报表系统
  • 运维管理系统
    • CMDB
    • 发布管理
    • 作业管理
    • 脚本管理
    • 变更管理
    • 故障管理

Django的优点和缺点

优点:

  • Python实现,代码干净、整洁
  • 提供管理后台,能够快速开发
  • 复用度高,设计、使用上遵循DRY原则
  • 易于扩展复用的中间件
  • 内置的安全框架
  • 丰富的第三方类库

缺点:

  • 单体应用-不易并行开发,单点扩展
  • 不适合非常小的几行代码的项目
  • 不适合于高并发的to C互联网项目

Django的设计思想

  • DRY(Don`t repeat yourself):不重复造轮子
  • MVT
  • 快速开发
  • 灵活易于扩展
  • 松耦合
  • 显式优于隐式

用两个命令创建一个包含用户管理功能的后台

使用Django创建一个基础应用

职位管理系统 - 建模
  • 职位名称
  • 类别
  • 工作地点
  • 职位职责
  • 职位要求
  • 发布人
  • 发布日期
  • 修改日期
安装django
pip install django==5.0
查看django版本
python -m django --version
创建项目
django-admin startproject recruitment
启动服务
python manage.py runserver 0.0.0.0:8000
创建应用
 python .\manage.py startapp jobs

jobs表示关于职位管理的应用

生成迁移文件
python .\manage.py makemigrations
迁移数据
python .\manage.py migrate 
创建后台管理员账号
 python .\manage.py createsuperuser
创建模型
from datetime import datetimefrom django.db import models
from django.contrib.auth.models import User# Create your models here.
JobTypes = [(0, "技术类"),(1, "产品类"),(2, "运营类"),(3, "设计类"),
]Cities = [(0, "北京"),(0, "上海"),(0, "深圳"),(0, "西安"),
]class Job(models.Model):job_type = models.SmallIntegerField(blank=False, choices=JobTypes, verbose_name="职位类别")job_name = models.CharField(max_length=250, blank=False, verbose_name="职位名称")job_city = models.SmallIntegerField(choices=Cities, blank=False, verbose_name="工作地点")job_responsibility = models.TextField(max_length=1024, verbose_name="职位职责")job_requirements = models.TextField(max_length=1024, blank=False, verbose_name="职位要求")creator = models.ForeignKey(User, verbose_name="创建人", null=True, on_delete=models.SET_NULL)created_date = models.DateTimeField(verbose_name="创建时间", default=datetime.now)modified_date = models.DateTimeField(verbose_name="修改时间", default=datetime.now)
注册模型
from django.contrib import adminfrom jobs.models import Job# Register your models here.
admin.site.register(Job)
注册应用

在settings.py INSTALLED_APPS下注册应用

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','jobs'
]

快速迭代完善应用

设置Django Admin模型显示的字段
class JobAdmin(admin.ModelAdmin):list_display = ("job_name", "job_type", "job_city", "creator", "created_date", "modified_date")admin.site.register(JobAdmin)
设置Django Admin新增/修改时不需要手动编辑的字段
class JobAdmin(admin.ModelAdmin):exclude = ("creator", "created_date", "modified_date")
admin.site.register(JobAdmin)
设置Django Admin创建/修改人为当前登录用户
class JobAdmin(admin.ModelAdmin):def save_model(self, request, obj, form, change):obj.creator = request.usersuper().save_model(request, obj, form, change)
admin.site.register(Job, JobAdmin)

添加自定义页面

职位列表展示
  • 列表页时独立页面,使用自定义的页面
  • 添加如下页面
    • 职位列表页
    • 职位详情页
  • 匿名用户可以访问
Django的自定义模板
  • Django模板包含了输出的HTML页面的静态部分的内容
  • 模板里面的动态内容在运行时被替换
  • 在views里面指定每个URL使用哪个模板来渲染页面
  • 模板继承与块(Template inheritance & Block)
    • 模板继承允许定义一个骨架模板,骨架包含站点上的公共元素(如头部导航,尾部链接)
    • 骨架模板里面可以定义Block块,每一个Block块都可以在继承的页面上重新定义/覆盖
    • 一个页面可以继承自另外一个页面
  • 定义一个匿名访问页面的基础页面,基础页面定义页头
  • 添加页面 jon/templates/base.html

企业域账号集成

  • 什么是目录服务Directory Service?
  • 可以直接使用域账号登录
  • 不用手工添加账号,维护独立密码
  • 可以集成OpenLDAP/ActiveDirectory
  • 项目选择OpenLDAP
  • DN:目录服务中的一个唯一对象

1、启动OpenLDAP容器:

docker run -p 389:389 -p 636:636 --name ldap-service --detach --hostname ldap-service osixia/openldap# 检查是否启动成功
docker exec ldap-service ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin

参考文档:https://choubaodxs.github.io/blogs/%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD/docker%E6%90%AD%E5%BB%BAOpenLDAP.html#%E5%AE%89%E8%A3%85-docker%E6%96%B9%E5%BC%8F

2、启动phpldapadmin容器:

docker run -p 6443:443 --name phpldapadmin-service --hostname phpldapadmin-service --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin

3、浏览器打开https://localhost:6443  默认账号:cn=admin,dc=example,dc=org 默认密码:admin

安装ldap django库

pip install django-python3-ldap

这篇关于极客时间 - Django快速开发实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971819

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来