当前位置: 首页 > news >正文

45.django - 开始建立第一个项目

1.django是什么?

Django是一个高级的、免费的、开源的Web应用框架,它由Python编程语言编写而成。Django遵循模型-视图-控制器(MVC)的设计模式,但通常将其称为模型-视图-模板(MVT)架构。它的主要特点是:

快速开发:Django旨在简化Web应用的构建过程,允许开发者快速地创建功能丰富的网站。
DRY原则:Django遵循“Don't Repeat Yourself”(DRY)原则,鼓励代码复用,减少冗余。
数据库驱动:它内置了ORM(对象关系映射)系统,使得处理数据库操作变得简单,无需编写SQL语句。
安全性:Django提供了许多内置的安全防护措施,如防止跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。
强大的URL路由:Django允许灵活定义URL模式,将URL映射到特定的视图函数。
内置的管理员界面:Django提供了一个可自定义的后台管理系统,方便管理数据库中的数据。
模板系统:Django的模板语言允许开发者创建动态HTML页面,支持继承、过滤器和标签等功能。
可扩展性:Django拥有丰富的第三方库和插件,如Django Rest Framework用于API开发,Django Channels支持WebSocket等异步通信。
社区支持:Django有一个活跃的开发者社区,提供各种教程、文档和论坛支持,如Django中文社区、官方论坛和Discord服务器。
遵循Web标准:Django支持现代Web开发的最佳实践,如使用HTTP/2、响应式设计和性能优化。
由于这些特性,Django成为了构建复杂、高性能Web应用的首选框架之一。

2.Pycharm 社区版,还是专业版?

使用Pycharm分为社区版(免费)和专业版(可破)。

专业版可以直接创建Django项目。专业版有个代码提示的功能,非常方便,写完一句代码,回车后就会猜测你的下一句代码,你直接在此基础上进行修改就好。挺好的。

社区版需要先创建一个普通项目,然后pip install django,再使用命令django-admin startproject prjName创建django项目。没有那个代码预测的功能,自己慢慢敲也是可以的。

可以的话,还是专业版,更专业。

3.开始django,Pycharm专业版

创建一个Django项目

从菜单File--New Project,填好信息后,直接create

项目创建中,会安装Django

创建好的项目:

运行一个Django项目

项目创建完成后,可以直接运行。我们先试试常规办法,在文件上右键,选择Run XXX

运行的结果,直接exit 了。Django有自己的运行方式,而且不只一种呢。

运行方法一,命令行的方式

使用下面的命令执行,默认的端口是8000

Python manage.py runserver

也可以使用命令指定端口:

Python manage.py runserver 127.0.0.1:8001

运行方法二,配置Django Server的方式

配置一个Django server,输入host和port

直接运行

4.django尊容如何?

前端

后台管理端

Django后台提供了检点用户、权限等管理功能。现在,还没有建立数据库表所以报错了哈。

5.数据库的配置

默认的数据库sqlite

在setting.py里配置新的数据库postgresQL

#配置postgres数据库'default': {'ENGINE': 'django.db.backends.postgresql','NAME': 'dCore','USER': 'postgres','PASSWORD': '123456','HOST': '127.0.0.1','PORT': '5432',}

安装postgreSQL的驱动

pip install psycopg2

迁移数据库(可以认为是初始化数据)

两个命令

makemigrationsmigrate在Django框架中扮演着不同的角色,它们的主要区别在于职责和功能。12

  1. makemigrations:

    • 功能:makemigrations命令用于创建数据库迁移文件。它会检测应用程序中的模型变化,并生成相应的迁移文件来描述如何将旧的数据模型转换为新的数据模型。
    • 过程:在创建迁移文件时,Django会自动检测模型的增加、删除、修改等操作,并将其记录在迁移文件中。迁移文件是一个Python脚本,包含了一个Migration类,其中定义了如何对数据库进行变更的操作。
    • 自定义:开发人员可以通过编辑迁移文件来自定义数据库迁移的行为。
  2. migrate:

    • 功能:migrate命令用于应用数据库迁移,它会根据迁移文件中的操作指令,将数据库结构更新为最新的模型定义。
    • 过程:Django会检查迁移文件,并将其中的变化应用到数据库中,确保数据库的结构与模型的结构保持一致。
    • 依赖:migrate命令还会根据迁移目录中间代码文件和Django的数据库django_migrations表中的代码文件做对比,如果表中没有那就对这些没有文件按顺序和依赖关系做迁移应用,然后再把代码文件名加进迁移表中。

方式一,Ctrl+Alt+R,打开manage.py工具

makemigrations

migrate

方式二,命令行

python manage.py makemigrations
python manage.py migrate

初始化的数据库表

6.再看后台管理界面

后台管理界面,登录页

创建一个超级管理员

使用命令createsuperuser

一次输入用户名、邮箱、密码

创建完成后,就可以使用登录。

后台管理界面

至此,Django的开发基础就做完了。

你的顺利吗?

相关文章:

45.django - 开始建立第一个项目

1.django是什么? Django是一个高级的、免费的、开源的Web应用框架,它由Python编程语言编写而成。Django遵循模型-视图-控制器(MVC)的设计模式,但通常将其称为模型-视图-模板(MVT)架构。它的主要…...

# 梯影传媒T6投影仪刷机方法及一些刷机工具链接

梯影传媒T6投影仪刷机方法及一些刷机工具链接 文章目录 梯影传媒T6投影仪刷机方法及一些刷机工具链接1、安装驱动程序2、备份设备rom【boot、system】3、还原我要刷进设备的rom【system】4、打开开发者模式以便于安装apk5、root设备6、更多好链接: 梯影传媒T6使用的…...

【代码随想录算法训练营第37期 第三十二天 | LeetCode122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II】

代码随想录算法训练营第37期 第三十二天 | LeetCode122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II 一、122.买卖股票的最佳时机II 解题代码C&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int result 0;for(int i 1; i &…...

DP:回文串模型

一、回文子串 . - 力扣&#xff08;LeetCode&#xff09; 该题有3种解法 &#xff08;1&#xff09;中心扩展算法&#xff08;在字符串章节有介绍&#xff09;时间复杂度O&#xff08;N^2&#xff09;,空间复杂度O&#xff08;1&#xff09; &#xff08;2&#xff09;马丁车…...

STM32CubeMX软件的安装以及配置

STM32CubeMX软件的配置过程可以详细分为以下几个步骤&#xff0c;以确保您能够顺利地使用该软件进行STM32微控制器的配置和代码生成&#xff1a; 1. 安装前准备 安装JAVA环境&#xff1a;由于STM32CubeMX软件是基于JAVA环境运行的&#xff0c;所以需要先安装Java Runtime Env…...

【适配鸿蒙next】Flutter 新一代混合栈管理框架

前言 据最新消息显示&#xff0c;华为今年下半年将全面转向其自主平台HarmonyOS&#xff0c;放弃Android系统。 报道中提到&#xff0c;下一版HarmonyOS预计将随华为即将推出的Mate 70旗舰系列一起发布。 据悉&#xff0c;HarmonyOS Next 已经扩展到4000个应用程序&#xff0c;…...

车载电子电气架构 --- 车载信息安全

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

【数据结构(邓俊辉)学习笔记】图04——双连通域分解

文章目录 0. 概述1 关节点与双连通域2 蛮力算法3 可行算法4 实现5 示例6 复杂度 0. 概述 学习下双连通域分解&#xff0c;这里略微有一点点难&#xff0c;这个算是DFS算法的非常非常经典的应用&#xff0c;解决的问题也非常非常有用。 1 关节点与双连通域 连通性很好理解&am…...

UI学习(二)

UI学习&#xff08;二&#xff09; 文章目录 UI学习&#xff08;二&#xff09;布局子视图手动布局自动布局 导航控制器导航控制器基础导航控制器的切换导航栏工具栏 分栏控制器分栏控制器协议部分的内容UITableView基础部分相关的协议函数高级协议与单元格 多界面传值 布局子视…...

【嵌入式】波特率9600,发送8个字节需要多少时间,如何计算?

问题&#xff1a; 波特率9600&#xff0c;发送 01 03 00 00 00 04 44 09 (8字节) 需要多少时间&#xff0c;如何计算&#xff1f; 在计算发送数据的时间时&#xff0c;首先要考虑波特率以及每个字符的数据格式。对于波特率9600和标准的UART数据格式&#xff08;1个起始位&…...

jmeter -n -t 使用非GUI模式运行脚本说明

命令模式下执行jmx文件 jmeter -n -t fatie.jmx -l results\t4.jtl -e -o results\h1 表示以命令行模式运行当前目录下的脚本fatie.jmx,将结果存入当前目录下的results\t1.jtl,并且生成html格式的报告&#xff0c;写入文件夹results\h1。 说明&#xff1a;生成结果的文件夹r…...

网络流媒体协议——HLS协议

HTTP 实时流媒体&#xff08;HTTP Live Streaming&#xff0c;HLS&#xff09;协议是苹果公司提出的主要用于直播的流媒体协议。一个完整的基于HLS协议的流媒体直播系统由四部分组成&#xff0c;即音视频采集器、媒体服务器、媒体分发器和播放客户端。 媒体服务器 媒体服务器的…...

Linux服务器扩容及磁盘分区(LVM和非LVM)

Linux扩容及磁盘分区&#xff08;LVM和非LVM&#xff09; 本文主要介绍了阿里云服务器centos的扩容方法&#xff1a;非LVM分区扩容方法&#xff08;系统盘&#xff09;&#xff0c;以及磁盘改LVM并分区&#xff08;数据盘&#xff09;。主要是ext4文件系统及xfs磁盘scsi MBR分…...

支持向量机

支持向量机&#xff08;SVM&#xff09; 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种用于分类和回归任务的监督学习算法。SVM 的核心思想是找到一个最优的决策边界&#xff08;或称为超平面&#xff09;&#xff0c;以最大化不同类别之间的间隔。以…...

Kafka 架构

1 整体架构 1.1 Zookeeper Zookeeper 是一个分布式协调服务&#xff0c;用于管理 Kafka 的元数据。它负责维护 Kafka 集群的配置信息、Broker 列表和分区的 Leader 信息。 Zookeeper 确保了 Kafka 集群的高可用性和可靠性。 但 Zookeeper 已经成为 Kafka 性能瓶颈&#xff0c;…...

iOS 查看runtime源码的几种方法

目录 前言 查看runtime 源码方法 1.下载 Apple 官方提供的源代码 2.通过 GitHub 访问镜像 3.使用命令行工具查看 4.示例 前言 这篇博客主要介绍了查看iOS runtime源代码的方法。 查看runtime 源码方法 查看iOS runtime源码的方法包括以下几个步骤&#xff1a; 1.下载 A…...

底板外设倒灌到处理器分析

在嵌入式系统中&#xff0c;底板外设通常与处理器通过各种接口&#xff08;如UART、SPI、I2C、GPIO等&#xff09;进行连接。这些外设可能包括传感器、执行器、存储器、通信模块等。倒灌是指当外设向处理器提供的信号电平超出了处理器能够接受的范围&#xff0c;导致处理器无法…...

使用贝塞尔曲线实现一个iOS时间轴

UI效果 实现的思路 就是通过贝塞尔曲线画出时间轴的圆环的路径&#xff0c;然后 使用CAShaper来渲染UI&#xff0c;再通过 animation.beginTime [cilrclLayer convertTime:CACurrentMediaTime() fromLayer:nil] circleTimeOffset 来设置每个圆环的动画开始时间&#xff0c; …...

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

【深度学习】深度学习之巅&#xff1a;在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境 大家好 我是寸铁&#x1f44a; 总结了一篇【深度学习】深度学习之巅&#xff1a;在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨ 喜欢的小伙伴可以点点关注 &#…...

在docker容器中使用gdb调试python3.11的进程

gdb调试python进程的前提条件 安装python及python调试信息安装gdb工具安装python-gdb.py扩展 安装过程 我们使用docker来安装以上内容&#xff0c;Dockerfile文件内容如下&#xff1a; FROM docker.io/centos:7.4.1708# 安装依赖 RUN yum install -y -q epel-release &…...

堆排序要点和难点以及具体案例应用

堆排序(Heap Sort)是一种基于堆数据结构的排序算法。下面我将以分点表示和归纳的方式,结合相关数字和信息,详细描述堆排序的PTA(Programming and Testing Approach,编程与测试方法)。 1. 堆排序原理 堆排序是一种树形选择排序,利用了完全二叉树的性质,通过构建最大堆…...

pyspark中使用mysql jdbc报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决

报错信息&#xff1a; py4j.protocol.Py4JJavaError: An error occurred while calling o33.load. : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 我的解决方法&#xff1a; 这个报错就是提示你找不到jar包&#xff0c;所以你需要去下载一个和你mysql版本匹配的j…...

对称加密系统解析

目录​​​​​​​ 1.概述 2. 对称密码类型 3. 对称加密优缺点 4. 对称加密算法 4.1 DES 4.2 3DES 4.3 AES ​​​​​​4.4 SM1 4.5 SM4 1.概述 对称加密&#xff0c;是指在加密和解密时使用同一秘钥的方式。秘钥的传送和保存的保护非常重要&#xff0c;务必不要让秘…...

初识 java 2

1. idea 的调试 1. 点击鼠标左键设置断点 2.运行到断点处 点击 或点击鼠标右键&#xff0c;再点击 使代码运行到断点处&#xff0c;得到 2. 输出到控制台 System.out.println(value);//输出指定的内容&#xff0c;并换行 value 要打印的内容System.out.print(value);…...

云端狂飙:Django项目部署与性能优化的极速之旅

Hello&#xff0c;我是阿佑&#xff0c;这次阿佑将手把手带你亲自踏上Django项目从单机到云端的全过程&#xff0c;以及如何通过Docker实现项目的无缝迁移和扩展。不仅详细介绍了Docker的基本概念和操作&#xff0c;还深入探讨Docker Compose、Swarm和Kubernetes等高级工具的使…...

GDPU JavaWeb 大结局篇(持续更新中)

GDPUJavaWeb程序设计复习&#xff0c;习题集&#xff0c;重点知识总结&#xff0c;一篇就够了。 实验复习 JavaWeb代码复习&#xff0c;在专栏也可查阅。 课后巩固习题 1 【单选题】下列说法正确的是( D ) A、在B/S结构中,结果应用软件发生了改变,就必须通知所有的客户端重新…...

Linux系统信息的查看

目录 前言一、系统环境二、查看系统IP地址信息2.1 ifconfig命令2.2 ip address命令 三、查看系统端口信息3.1 nmap命令3.2 netstat命令 四、查看系统进程信息4.1 ps命令4.2 kill命令 五、查看系统监控信息5.1 top命令5.2 df命令iostat命令5.3 sar命令 总结 前言 本篇文章介绍查…...

LE Audio音频广播新功能Auracast介绍

LE Audio音频广播新功能Auracast介绍 /*! \copyright Copyright (c) 2019-2022 Qualcomm Technologies International, Ltd. All Rights Reserved. Qualcomm Technologies International, Ltd. Confidential and Proprietary. \file audio_sources.h \defgroup audio_so…...

一文学习yolov5 实例分割:从训练到部署

一文学习yolov5 实例分割&#xff1a;从训练到部署 1.模型介绍1.1 YOLOv5结构1.2 YOLOv5 推理时间 2.构建数据集2.1 使用labelme标注数据集2.2 生成coco格式label2.3 coco格式转yolo格式 3.训练3.1 整理数据集3.2 修改配置文件3.3 执行代码进行训练 4.使用OpenCV进行c部署参考文…...

【设计模式】行为型设计模式之 策略模式学习实践

介绍 策略模式&#xff08;Strategy&#xff09;&#xff0c;就是⼀个问题有多种解决⽅案&#xff0c;选择其中的⼀种使⽤&#xff0c;这种情况下我们 使⽤策略模式来实现灵活地选择&#xff0c;也能够⽅便地增加新的解决⽅案。⽐如做数学题&#xff0c;⼀个问题的 解法可能有…...

邢台网站关键词优化/成都多享网站建设公司

摘要 温度作为环境监控中具有重要意义的参数之一&#xff0c;其直接影响植物生长、土壤变化&#xff0c;也密切关联着高质量农产品的栽培&#xff0c;在工业生产等诸多领域均起着至关重要的作用。温度控制系统的实现是一个非常关键的课题&#xff0c;但是目前先进的温度测量技…...

外贸网站推广公司最大/网络优化大师

1..插入 &#xff1a;在顺序线性表l的第i个位置前插入元素e 。 第一步判断插入位置是否合法&#xff0c;如果不合法则异常退出。第二步判断线性表存储空间是否不足&#xff0c;如果不足则增加存储容量。第三步将插入位置及之后元素后移。第四步将待插入元素插入。2..删除&…...

北京市中小企业公共服务平台/网站seo入门基础教程书籍

本期题目53.最大子数组和918.环形子数组最大和152.乘积最大子数组1567. 乘积为正数的最长子数组长度53. 最大子数组和 本期的几道题目的共同特点都是要在一个数组中找一个连续的数组&#xff0c;以使得目标最大化&#xff0c;我们从这道题入手来分析这类题目该如何求解。 首先…...

济南网站建设推广服务/网站技术制作

一、查找节点 查找属性节点: 通过jQuery的选择器来完成。 操作属性节点: 调用jQuery对象的attr()来获取它的属性值。 操作文本节点: 通过text()方法。 //1.操作文本节点:通过jQuery的text()方法alert($("#bj").text());$("#bj").text("南京");al…...

世界疫情最新数据消息/seo计费系统开发

定时定量、少量多餐已经不合时宜&#xff1f;陆续有研究证明&#xff0c;除了营养均衡&#xff0c;吃东西的时间将影响减重成效。 吃是大事&#xff0c;也是忙碌生活中最易获得的疗癒&#xff0c;却始终在肥胖的诅咒中挣扎&#xff0c;吃多怕胖&#xff0c;吃少又不满足。 有人…...

wordpress 插件机制/企点下载

“管理”是建立在合法的&#xff0c;有报酬的和强制性的权力基础上的&#xff0c;但是“领导”更多的是建立在个人影响权和专长权以及模范作用的基础上&#xff0c;首先&#xff0c;领导者必然会有部下或追随者&#xff0c;其次&#xff0c;领导者拥有影响追随者的能力&#xf…...