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

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框架之一(flaskdjangotornadofastapi),是最容易上手的框架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入门全攻略&#xff1a;从零搭建你的第一个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团队挖走

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE 4.0&#xff09;、“零一万物”&#xff08;Yi-34B&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff0…...

达梦数据库

达梦数据库 达梦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日&#xff0c;周四上午 Axios 是一个基于Promise的HTTP客户端&#xff0c;用于浏览器和node.js环境。它提供了一个简单易用的API来发送HTTP请求&#xff0c;并支持Promise API&#xff0c;这使得异步请求变得容易处理。 Axios的一些主要特点包括&#xff1a; Pro…...

React 其他 Hooks

其他 Hooks useRef 可用于获取 DOM 元素 const ScrollRef useRef(null)ScrollRef.current useContext &#xff08;先回顾一下之前的 Context 知识&#xff0c;借用之前 ppt 和源码&#xff09; Hooks 中使用 useContext 来获取 context 的值 // 父组件创建 contextexpor…...

echarts配置记录,一些已经废弃的写法

1、normal&#xff0c;4.0以后无需将样式写在normal中了 改前&#xff1a; 改后&#xff1a; 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 下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1vlCtC3LGFMzYpSUUDY-tEg 提取码&#xff1a;8110...

Redis实践记录与总结

最近生产环境缓存数据库数据过大&#xff08;如何搭建单服务redis缓存数据库&#xff1f;以及可视化工具Another Redis Desktop Manager使用&#xff09;&#xff0c;导致在对数据库做rdb快照备份时消耗内存过大&#xff0c;缓存数据库宕机一小时。基础运维通过增加虚拟机内存暂…...

持续总结中!2024年面试必问 20 道 Rocket MQ面试题(三)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 20 道 Rocket MQ面试题&#xff08;二&#xff09;-CSDN博客 五、什么是生产者&#xff08;Producer&#xff09;和消费者&#xff08;Consumer&#xff09;在RocketMQ中&#xff1f; RocketMQ是一个高性能、高吞…...

Android 自定义Adapter关键函数getView性能最优使用

文章目录 1、自定义Adapter关键函数getView()标准写法2、布局文件list_item_user.xml3、解释3、示例使用4、结果5、进一步优化和扩展5.1. **优化性能&#xff1a;ViewHolder模式**5.2. **处理多种类型的视图**5.3. **使用RecyclerView.Adapter** 6、RecyclerView使用示例7、结果…...

Linux服务上MySQL的启动、重启和关闭

Linux服务上MySQL的启动、重启和关闭 MySQL是一种广泛使用的开源关系型数据库管理系统&#xff0c;常用于各种规模的应用程序中。在Linux服务器上管理MySQL服务是一个基本的运维任务。本文将详细介绍如何在Linux系统上启动、重启和关闭MySQL服务&#xff0c;涵盖不同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 || 基本用法入门】

总言 主要内容&#xff1a;主要介绍Git中常用的指令。   PS&#xff1a;多人协作与企业开发模型使用&#xff0c;此部分内容不作博文总结。             文章目录 总言1、初识Git1.1、版本控制器1.2、git安装 2、基本操作2.1、Git本地仓库2.1.1、创建Git本地仓库&…...

【运维项目经历|021】Spark大数据分析平台建设项目

目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的问题 问题1&#xff1a;项目周期多久&#xff1f; 问题2&#xff1a;服务器部署架构方式及数量和配置…...

装机数台,依旧还会心念i5-12600KF的性能和性价比优势:

近几个月的时间中&#xff0c; 装机差不多4台电脑&#xff0c;由于工作需要&#xff0c;计划年中再增添一台。 目前市场上英特尔CPU促销非常火爆&#xff0c;第12代、第13代以及第14代的产品在年中有适当的优惠。 年中也是装机的旺季&#xff0c;各种相关配件也相对便宜一些。…...

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…...

三数之和-力扣

这道题在使用哈希表来做时&#xff0c;做的很吃力&#xff0c;对重复的去除很费劲。 首先是对i的去重&#xff0c;不能使用nums[i] nums[i] 这样的条件去判断&#xff0c;这会遗漏掉类似[-1, -1 , 2]这样的解其次是对j的去重&#xff0c; 对j的去重是为了防止类似[-4, 2, 2, …...

2024 五月份国内外CTF 散装re 部分wp

cr3CTF warmup 附件拖入ida main函数无法反汇编&#xff0c;仔细看&#xff0c;有花指令&#xff0c;jnz实际上必定跳转。有非常多处&#xff0c;可以写脚本patch程序去掉花指令&#xff0c;只要匹配指令&#xff0c;再获取跳转地址&#xff0c;nop掉中间的代码就行。但…...

[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送

[猫头虎分享21天微信小程序基础入门教程]第21天&#xff1a;小程序的社交分享与消息推送 第21天&#xff1a;小程序的社交分享与消息推送 &#x1f4f2; 自我介绍 大家好&#xff0c;我是猫头虎&#xff0c;一名全栈软件工程师。今天我们继续微信小程序的学习&#xff0c;重…...

aop整理

一、aop基础知识 Spring AOP 详细深入讲解代码示例 二、spring/spring boot/spring cloud中出现的注解/类与概念的对应 Aspect&#xff1a; 标注当前MyAspect是一个切面类&#xff0c;–》对应切面的概念&#xff0c;在切面类中有用Before等注解修饰的方法作为advice,也有用…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...