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
迁移数据库(可以认为是初始化数据)
两个命令
makemigrations
和migrate
在Django框架中扮演着不同的角色,它们的主要区别在于职责和功能。12
-
makemigrations:
- 功能:
makemigrations
命令用于创建数据库迁移文件。它会检测应用程序中的模型变化,并生成相应的迁移文件来描述如何将旧的数据模型转换为新的数据模型。 - 过程:在创建迁移文件时,Django会自动检测模型的增加、删除、修改等操作,并将其记录在迁移文件中。迁移文件是一个Python脚本,包含了一个Migration类,其中定义了如何对数据库进行变更的操作。
- 自定义:开发人员可以通过编辑迁移文件来自定义数据库迁移的行为。
- 功能:
-
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: class Solution { public:int maxProfit(vector<int>& prices) {int result 0;for(int i 1; i &…...

DP:回文串模型
一、回文子串 . - 力扣(LeetCode) 该题有3种解法 (1)中心扩展算法(在字符串章节有介绍)时间复杂度O(N^2),空间复杂度O(1) (2)马丁车…...
STM32CubeMX软件的安装以及配置
STM32CubeMX软件的配置过程可以详细分为以下几个步骤,以确保您能够顺利地使用该软件进行STM32微控制器的配置和代码生成: 1. 安装前准备 安装JAVA环境:由于STM32CubeMX软件是基于JAVA环境运行的,所以需要先安装Java Runtime Env…...

【适配鸿蒙next】Flutter 新一代混合栈管理框架
前言 据最新消息显示,华为今年下半年将全面转向其自主平台HarmonyOS,放弃Android系统。 报道中提到,下一版HarmonyOS预计将随华为即将推出的Mate 70旗舰系列一起发布。 据悉,HarmonyOS Next 已经扩展到4000个应用程序,…...

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

【数据结构(邓俊辉)学习笔记】图04——双连通域分解
文章目录 0. 概述1 关节点与双连通域2 蛮力算法3 可行算法4 实现5 示例6 复杂度 0. 概述 学习下双连通域分解,这里略微有一点点难,这个算是DFS算法的非常非常经典的应用,解决的问题也非常非常有用。 1 关节点与双连通域 连通性很好理解&am…...

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

【嵌入式】波特率9600,发送8个字节需要多少时间,如何计算?
问题: 波特率9600,发送 01 03 00 00 00 04 44 09 (8字节) 需要多少时间,如何计算? 在计算发送数据的时间时,首先要考虑波特率以及每个字符的数据格式。对于波特率9600和标准的UART数据格式(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格式的报告,写入文件夹results\h1。 说明:生成结果的文件夹r…...
网络流媒体协议——HLS协议
HTTP 实时流媒体(HTTP Live Streaming,HLS)协议是苹果公司提出的主要用于直播的流媒体协议。一个完整的基于HLS协议的流媒体直播系统由四部分组成,即音视频采集器、媒体服务器、媒体分发器和播放客户端。 媒体服务器 媒体服务器的…...

Linux服务器扩容及磁盘分区(LVM和非LVM)
Linux扩容及磁盘分区(LVM和非LVM) 本文主要介绍了阿里云服务器centos的扩容方法:非LVM分区扩容方法(系统盘),以及磁盘改LVM并分区(数据盘)。主要是ext4文件系统及xfs磁盘scsi MBR分…...
支持向量机
支持向量机(SVM) 支持向量机(Support Vector Machine, SVM)是一种用于分类和回归任务的监督学习算法。SVM 的核心思想是找到一个最优的决策边界(或称为超平面),以最大化不同类别之间的间隔。以…...

Kafka 架构
1 整体架构 1.1 Zookeeper Zookeeper 是一个分布式协调服务,用于管理 Kafka 的元数据。它负责维护 Kafka 集群的配置信息、Broker 列表和分区的 Leader 信息。 Zookeeper 确保了 Kafka 集群的高可用性和可靠性。 但 Zookeeper 已经成为 Kafka 性能瓶颈,…...
iOS 查看runtime源码的几种方法
目录 前言 查看runtime 源码方法 1.下载 Apple 官方提供的源代码 2.通过 GitHub 访问镜像 3.使用命令行工具查看 4.示例 前言 这篇博客主要介绍了查看iOS runtime源代码的方法。 查看runtime 源码方法 查看iOS runtime源码的方法包括以下几个步骤: 1.下载 A…...

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

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

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境
【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境 大家好 我是寸铁👊 总结了一篇【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨ 喜欢的小伙伴可以点点关注 &#…...
在docker容器中使用gdb调试python3.11的进程
gdb调试python进程的前提条件 安装python及python调试信息安装gdb工具安装python-gdb.py扩展 安装过程 我们使用docker来安装以上内容,Dockerfile文件内容如下: FROM docker.io/centos:7.4.1708# 安装依赖 RUN yum install -y -q epel-release &…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...