Django入门全攻略:从零搭建你的第一个Web项目

系列文章目录
努力ing
- Django入门全攻略:从零搭建你的第一个Web项目
- 努力ing…
文章目录
- 系列文章目录
- 前言
- 一、Django
- 1.0 框架介绍
- 1.1 Django安装
- 1.2 Django项目创建
- 1.3 目录介绍
- 二、子应用
- 2.1 子应用创建
- 2.2 目录结构
- 2.3 子应用注册
- 2.4 子应用视图逻辑
- 2.4.1 编写视图
- 2.4.2 编写路由
- 三、模版
- 3.1 模版使用步骤
- 3.2 视图渲染
- 四、模版语法
- 4.1 模版变量
- 4.2 for循环
- 4.3 if判断
- 五、静态文件
- 六、完整流程
- 1.创建应用并用pycharm打开:
- 2.创建子应用:
- 3.注册子应用:
- 4.创建视图:
- 5.创建路由:
- 6.`python manage.py runserver`:
- 7.创建模版 template:
- 8.如需添加静态文件:
前言
Django项目创建、子应用视图逻辑、模版、静态文件、模版语法、ORM(虾片写)
探索Django的魅力,从零开始搭建你的首个Web项目。本文将指引你完成项目的创建、子应用的注册、视图逻辑的编写,以及模板与静态文件的使用,让你快速掌握Django开发的核心技能。
一、Django
1.0 框架介绍
Django是一个开放源代码的Web 应用框架,由纯Python写成,是目前 Python 语言中主流 三大Web框架之一(flask、django、tornado、fastapi),是最容易上手的框架Django主要采用MVT模式。
MVT架构模式:
M-model:模型,操作数据库功能部分
V-View:视图,处理业务逻辑的位置,提取数据、获取用户数据等等操作都在这里
T-Template:模版,用来展示视图操作后的数据渲染到html上,也可以在模版中为用户提供表单,让用户可以提交数据
1.1 Django安装
常用镜像源:
阿里:https://mirrors.aliyun.com/pypi/simple/
百度:https://mirror.baidu.com/pypi/simple/
清华:https://pypi.tuna.tsinghua.edu.cn/simple/
安装django:
pip install django==4.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
1.2 Django项目创建
Django 项目创建步骤:
1、找到对应目录,代码存放目录
2、通过cmd终端命令行,进入当前目录
3、执行创建项目的命令:django-admin startproject 项目名
4、运行项目:python manage.py runserver
第一种方式:cd到项目/工程的根目录
第二种方式:在pycharm中,打开终端命令行,输入命令
# 1. 终端指令 创建 django 项目--myproject
django-admin startproject myproject# 2. 进入到项目 里面
cd myproject# 3. 启动 django 服务的指令
python manage.py runserver
1.3 目录介绍

-
manage.py:用来管理当前项目的一个命令行工具
-
myproject:项目主文件夹,包含了项目最基本的配置文件及路由文件
__init__.py:空文件,用来指明当前的myproject为一个可导入的模块包- settings.py:项目主要配置文件
- urls.py:项目主要路由配置文件
- wsgi.py:项目部署WSGI并发服务器时所需要的配置文件
- asgi.py:对于支持异步的Django服务器,如Daphne,这个文件用于定义ASGI应用
二、子应用
2.1 子应用创建
子应用创建的三种方式:
1.python manage.py startapp appname
2.django-admin startapp appname
3.pycharm创建
2.2 目录结构
app/:app目录
- admin.py:这个app所使用表模型在admin注册展示时需要的文件
- views.py:视图函数文件,编写主要的增删改查等数据逻辑的地方
- models.py:未来操作数据库时,如果使用ORM映射关系,那么将使用该文件
2.3 子应用注册
# settings.py
INSTALLED_APPS = ['appname',
]
2.4 子应用视图逻辑
2.4.1 编写视图
打开app下的views.py文件,编写视图函数:
from django.http import HttpResponse
def index(request):return HttpResponse("<h1>Hello world</h1>")
2.4.2 编写路由
打开项目主目录下的urls.py文件,编写路由映射:
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [path('admin/', admin.site.urls), #admin 控制界面路由path('index/',views.index)
]
三、模版
3.1 模版使用步骤
模版使用步骤:
# 1. 项目根目录 创建 templates 文件夹# 2.在settings.py--配置模板路径# 3. templates 文件夹下面 创建 .html
# project.settings.py
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],#设置此项'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]
3.2 视图渲染
# app.views.py
from django.shortcuts import renderdef index(request):return render(request, 'index.html')
四、模版语法
模版语法:将项目中的数据,加载到html中的语法
4.1 模版变量
#views.py
#context:上下文,只接收字典格式的数据
return render(request,'index.html',context = {'name':'张三'})#index.html
名字:{{name}}
-------------------------------------------------#locals() 将当前函数作用域下的变量及值组合为字典
return render(request,'index.html',context = locals())
------------------------{{number}} ps:int,float,bool,string
{{list.0}} ps:list
{{dict.key}} ps:dict
4.2 for循环
{% for item in n3.keys %}{{ forloop.counter }} <!--当前循环次数,从1开始计数 -->{{ forloop.counter0 }} <!--当前循环次数,从0开始计数 -->{{ forloop.revcounter }} <!--当前循环次数,从最大长度开始 -->{{ forloop.revcounter0 }} <!--当前循环次数,从最大索引开始 -->{{ forloop.first }} <!-- 判断是否为第一次循环 -->{{ forloop.last }} <!-- 判断是否为最后一次循环 -->{{ forloop.parentloop }} <!-- 当循环嵌套时,访问上层循环 --><div>{{ item }}</div>
{% empty %}<h1>当期字典为空</h1>
{% end for%}
4.3 if判断
{% if n1 == '李明' %}<h1>哒哒哒哒哒哒</h1>
{% elif n1 == 'xxx' %}<h1>滴滴滴</h1>
{% else %}<h1>嘟嘟嘟</h1>
{% endif %}
五、静态文件
静态文件加载步骤:
1、需要创建存放静态资源的文件目录:static
2、在settings中配置静态资源目录地址:STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
3、在static中存放静态文件:图片、CSS等公共文件
4、在模版中(head标签上方),添加:{% load static%},使模版加载静态资源
5、在模版(.html)中使用:{% static 'imgs/img.png' %}
六、完整流程
1.创建应用并用pycharm打开:
2.创建子应用:
3.注册子应用:
4.创建视图:
5.创建路由:
6.
python manage.py runserver:
7.创建模版 template:
a. 项目跟目录创建 templates文件夹b.在settings.py---配置模版路径c.templates 文件夹下面创建.html
8.如需添加静态文件:
静态资源加载步骤:
1.需要创建存放静态资源的文件目录:static
2.在settings中配置静态资源目录地址:STATICFILES_DIRS = [os.path.join(BASE_DIR),'static']
3.在static中存放静态文件:图片、CSS等公共文件
4.在模板中,在head上,添加:{% load static %},意思是告诉模板,需要加载静态资源
5.使用:{% static "img/img.png" %}

相关文章:
Django入门全攻略:从零搭建你的第一个Web项目
系列文章目录 努力ing Django入门全攻略:从零搭建你的第一个Web项目努力ing… 文章目录 系列文章目录前言一、Django1.0 框架介绍1.1 Django安装1.2 Django项目创建1.3 目录介绍 二、子应用2.1 子应用创建2.2 目录结构2.3 子应用注册2.4 子应用视图逻辑2.4.1 编写视…...
AI大模型日报#0529:杨红霞创业入局“端侧模型”、Ilya左膀右臂被Claude团队挖走
导读:AI大模型日报,爬虫LLM自动生成,一文览尽每日AI大模型要点资讯!目前采用“文心一言”(ERNIE 4.0)、“零一万物”(Yi-34B)生成了今日要点以及每条资讯的摘要。欢迎阅读࿰…...
达梦数据库
达梦数据库 达梦Docker部署 达梦Docker部署 1、下载链接 https://pan.baidu.com/s/1RI3Lg0ppRhCgUsThjWV6zQ?pwdjc62 2、docker启动命令 docker run -d -p 5236:5236 \ --restartalways \ --name dm8 \ -e LD_LIBRARY_PATH/app/dm8/bin \ -e LENGTH_IN_CHAR1 \ -e CASE_SENS…...
什么是Axios
2024年5月23日,周四上午 Axios 是一个基于Promise的HTTP客户端,用于浏览器和node.js环境。它提供了一个简单易用的API来发送HTTP请求,并支持Promise API,这使得异步请求变得容易处理。 Axios的一些主要特点包括: Pro…...
React 其他 Hooks
其他 Hooks useRef 可用于获取 DOM 元素 const ScrollRef useRef(null)ScrollRef.current useContext (先回顾一下之前的 Context 知识,借用之前 ppt 和源码) Hooks 中使用 useContext 来获取 context 的值 // 父组件创建 contextexpor…...
echarts配置记录,一些已经废弃的写法
1、normal,4.0以后无需将样式写在normal中了 改前: 改后: DEPRECATED: normal hierarchy in labelLine has been removed since 4.0. All style properties are configured in labelLine directly now. 2、axisLabel中的文字样式无需使用te…...
电量计量芯片HLW8110的前端电路设计与误差分析校正.pdf 下载
电量计量芯片HLW8110的前端电路设计与误差分析校正.pdf 下载地址: 链接:https://pan.baidu.com/s/1vlCtC3LGFMzYpSUUDY-tEg 提取码:8110...
Redis实践记录与总结
最近生产环境缓存数据库数据过大(如何搭建单服务redis缓存数据库?以及可视化工具Another Redis Desktop Manager使用),导致在对数据库做rdb快照备份时消耗内存过大,缓存数据库宕机一小时。基础运维通过增加虚拟机内存暂…...
持续总结中!2024年面试必问 20 道 Rocket MQ面试题(三)
上一篇地址:持续总结中!2024年面试必问 20 道 Rocket MQ面试题(二)-CSDN博客 五、什么是生产者(Producer)和消费者(Consumer)在RocketMQ中? RocketMQ是一个高性能、高吞…...
Android 自定义Adapter关键函数getView性能最优使用
文章目录 1、自定义Adapter关键函数getView()标准写法2、布局文件list_item_user.xml3、解释3、示例使用4、结果5、进一步优化和扩展5.1. **优化性能:ViewHolder模式**5.2. **处理多种类型的视图**5.3. **使用RecyclerView.Adapter** 6、RecyclerView使用示例7、结果…...
Linux服务上MySQL的启动、重启和关闭
Linux服务上MySQL的启动、重启和关闭 MySQL是一种广泛使用的开源关系型数据库管理系统,常用于各种规模的应用程序中。在Linux服务器上管理MySQL服务是一个基本的运维任务。本文将详细介绍如何在Linux系统上启动、重启和关闭MySQL服务,涵盖不同Linux发行…...
ctfshow web入门 嵌入式 bash cpp pwn
kali转bash shell方法 方便我们本地 bash脚本教程 下面这个代码是bash脚本 #!/bin/bashOIFS"$IFS"IFS"," //表示逗号为字段分隔符set $QUERY_STRING //将参数传入数组Args($QUERY_STRING)IFS"$OIFS" //恢复原始IFS值if [ "$…...
【ONE·Git || 基本用法入门】
总言 主要内容:主要介绍Git中常用的指令。 PS:多人协作与企业开发模型使用,此部分内容不作博文总结。 文章目录 总言1、初识Git1.1、版本控制器1.2、git安装 2、基本操作2.1、Git本地仓库2.1.1、创建Git本地仓库&…...
【运维项目经历|021】Spark大数据分析平台建设项目
目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的问题 问题1:项目周期多久? 问题2:服务器部署架构方式及数量和配置…...
装机数台,依旧还会心念i5-12600KF的性能和性价比优势:
近几个月的时间中, 装机差不多4台电脑,由于工作需要,计划年中再增添一台。 目前市场上英特尔CPU促销非常火爆,第12代、第13代以及第14代的产品在年中有适当的优惠。 年中也是装机的旺季,各种相关配件也相对便宜一些。…...
Docker-----emqx部署
emqx通过Docker容器化部署流程 1.创建持久化挂载目录 mkdir -p /home/emqx/etc ------挂载emqx的配置文件目录 mkdir -p /home/emqx/data ------挂载emqx的存储目录 mkdir -p /home/emqx/log ------挂载emqx的日志目录 [root home]# mkdir -p /home/emqx/etc [root home]# mkd…...
三数之和-力扣
这道题在使用哈希表来做时,做的很吃力,对重复的去除很费劲。 首先是对i的去重,不能使用nums[i] nums[i] 这样的条件去判断,这会遗漏掉类似[-1, -1 , 2]这样的解其次是对j的去重, 对j的去重是为了防止类似[-4, 2, 2, …...
2024 五月份国内外CTF 散装re 部分wp
cr3CTF warmup 附件拖入ida main函数无法反汇编,仔细看,有花指令,jnz实际上必定跳转。有非常多处,可以写脚本patch程序去掉花指令,只要匹配指令,再获取跳转地址,nop掉中间的代码就行。但…...
[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送
[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送 第21天:小程序的社交分享与消息推送 📲 自我介绍 大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重…...
aop整理
一、aop基础知识 Spring AOP 详细深入讲解代码示例 二、spring/spring boot/spring cloud中出现的注解/类与概念的对应 Aspect: 标注当前MyAspect是一个切面类,–》对应切面的概念,在切面类中有用Before等注解修饰的方法作为advice,也有用…...
【仅剩47份】Midjourney湿版摄影风格训练数据包(含1851–1889年原始湿版扫描图谱×236张+ICC色彩配置文件×5):精准匹配V6.6新渲染引擎底层纹理采样逻辑
更多请点击: https://intelliparadigm.com 第一章:湿版摄影风格的历史溯源与数字再生价值 湿版摄影(Wet Plate Collodion Process)诞生于1851年,由英国科学家弗雷德里克斯科特阿彻(Frederick Scott Archer…...
数据模型代码生成器:从OpenAPI/Schema自动生成Python类型安全模型
1. 项目概述:当数据模型遇上代码生成如果你经常和数据模型打交道,无论是OpenAPI规范、JSON Schema,还是数据库的DDL,那你一定体会过手动编写对应数据类(Data Class)或Pydantic模型的繁琐。一个字段类型写错…...
Linux系统调用观察与strace实战
Linux系统调用观察与strace实战很多 Linux 问题只靠日志和进程状态很难看清,尤其是在进程存在但无响应、命令卡住不动、文件访问异常或网络连接莫名失败时。此时,观察进程正在进行哪些系统调用,往往能快速揭示它卡在什么地方。中级阶段必须掌…...
计算机毕业设计OpenCV多特征融合的疲劳驾驶检测系统 图像处理 深度学习 大数据毕业设计(源码+LW+PPT+讲解)
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…...
G-Helper终极指南:3分钟让你的华硕笔记本性能翻倍!
G-Helper终极指南:3分钟让你的华硕笔记本性能翻倍! 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…...
AI 术语通俗词典:优化器
优化器是机器学习、深度学习、神经网络和人工智能中非常核心的一个术语。它用来描述:模型在得到梯度之后,如何更新权重和偏置,使损失函数逐渐变小。 换句话说,优化器是在回答:模型已经知道自己错在哪里之后,…...
【ElevenLabs阿拉伯文语音实战指南】:20年AI语音工程师亲授7大本地化陷阱与3步高保真合成法
更多请点击: https://intelliparadigm.com 第一章:阿拉伯语语音合成的独特挑战与ElevenLabs能力边界 阿拉伯语语音合成(TTS)面临多重语言学与技术层面的固有挑战,远超拉丁语系语言的常规处理范畴。其核心难点在于右向…...
FreeRTOS信号量实战:从同步到互斥的嵌入式设计模式
1. FreeRTOS信号量基础概念与核心价值 第一次接触FreeRTOS信号量时,我盯着开发板愣了半天——这玩意儿不就是个带计数功能的开关吗?后来踩过几次坑才明白,信号量是嵌入式多任务系统的"交通警察",它用最简单的0和1控制着…...
UPS Ground运输时间估算:从纽约10013到全美各区域的实操指南
1. 物流时间估算的核心价值与挑战在电商和供应链的世界里,时间就是金钱,而运输时间则是连接承诺与现实的桥梁。无论是作为卖家管理客户预期,还是作为买家规划项目进度,一个相对准确的运输时间预估都至关重要。UPS Ground作为美国境…...
盘点那些能让性能翻倍的C++现代特性
在C开发中,“性能”是压倒一切的核心诉求之一。虽然编译器在不断变聪明,但有些底层优化仍需开发者通过选用正确的语言特性来触发。今天这篇文章,我们就来盘点几个能给代码带来质跃式性能提升的 C 现代特性,并附带直观的代码示例。…...















