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

news2024/11/8 15:38:17

在这里插入图片描述

系列文章目录

努力ing

  • Django入门全攻略:从零搭建你的第一个Web项目
  • 努力ing…

文章目录

  • 系列文章目录
  • 前言
  • 一、Django
    • 1.1 Django安装
    • 1.2 Django项目创建
    • 1.3 目录介绍
  • 二、子应用
    • 2.1 子应用创建
    • 2.2 目录结构
    • 2.3 子应用注册
    • 2.4 子应用视图逻辑
      • 2.4.1 编写视图
      • 2.4.2 编写路由
    • 2.5 完整流程
  • 三、模版
    • 3.1 模版使用步骤
    • 3.2 视图渲染
  • 四、静态文件
  • 五、模版语法
    • 5.1 模版变量
    • 5.2 for循环
    • 5.3 if判断


前言

Django项目创建、子应用视图逻辑、模版、静态文件、模版语法、ORM(虾片写)

    探索Django的魅力,从零开始搭建你的首个Web项目。本文将指引你完成项目的创建、子应用的注册、视图逻辑的编写,以及模板与静态文件的使用,让你快速掌握Django开发的核心技能。


一、Django

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)
]

2.5 完整流程

	1、创建子应用命令:django-admin startapp 子应用名(根据模块或者功能划分)

​	2、注册子应用:在主应用中的settings中INSTALL_APPS中注册子应用名

​	3、在子应用中创建对应视图函数

​	4、视图函数接收一个参数:request

​	5、视图函数返回一个HttpResponse

​	6、注册视图函数对应url(路由)

三、模版

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 render


def index(request):
    return render(request, 'index.html')
    

四、静态文件

静态文件加载步骤:
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' %}


五、模版语法

模版语法:将项目中的数据,加载到html中的语法

5.1 模版变量

#views.py
#context:上下文,只接收字典格式的数据
return render(request,'index.html',context = {'name':'张三'})

#index.html
名字:{{name}}
-------------------------------------------------

#locals() 导入
return render(request,'index.html',context = locals())

5.2 for循环

{% for item in n3.keys %}
	<div>{{forloop.counter0}}</div>
	<div>{{ item }}</div>
{% empty %}
	<h1>当期字典为空</h1>
{% end for%}


5.3 if判断

{% if n1 == '韩超' %}
	<h1>哒哒哒哒哒哒</h1>
{% elif n1 == 'xxx' %}
	<h1>滴滴滴</h1>
{% else %}
	<h1>嘟嘟嘟</h1>
{% endif %}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1714780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java开发-面试题-0001-String、StringBuilder、StringBuffer的区别

Java开发-面试题-0001-String、StringBuilder、StringBuffer的区别 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯技术文&am…

嵌入式进阶——HID协议

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 USB烧录USB HID协议USB协议组成通讯流程 官方USB HID范例文件说明修改PC端的显示 兼容库函数HID键盘USB调试工具USB 描述符设备描述…

【因果推断python】2_因果关系初步2

目录 偏差 关键思想 偏差 偏差是使关联不同于因果关系的原因。幸运的是&#xff0c;我们的直觉很容易理解。让我们在课堂示例中回顾一下我们的平板电脑。当面对声称为孩子提供平板电脑的学校会获得更高考试成绩的说法时&#xff0c;我们可以反驳说&#xff0c;即使没有平板电…

「清新题精讲」Skiers

更好的阅读体验 Skiers Description 给定 n n n 个点的有向无环平面图&#xff0c;求最少多少条从 1 1 1 到 n n n 的路径能覆盖原图的所有边&#xff1f; 1 ≤ n ≤ 5 1 0 3 1\le n\le 5\times10^3 1≤n≤5103 Solution 考虑从 1 1 1 到 n n n 的路径其实是边的链覆…

如何应对Android面试官 -> 玩转 Fragment

前言 本章主要讲解下 Framgent 的核心原理&#xff1b; 基础用法 线上基础用法&#xff0c;其他的可以自行百度 FragmentManager manager getSupportFragmentManager(); FragmentTransaction transaction manager.beginTransaction(); transaction.add(R.id.contentlayout,…

C语言函数复习全解析:参数、无参、嵌套与递归

C语言复习 函数篇 文中包括调用有参函数和无参函数、函数的嵌套和递归。首先,通过一道例题介绍了有参函数的概念和用法,即定义一个函数,接受特定参数并返回结果。接着,讲解了无参函数,即执行函数时不需要返回数值,只执行特定操作。然后,介绍了函数的嵌套,即在一个函数内部调用…

【云原生】Kubernetes----PersistentVolume(PV)与PersistentVolumeClaim(PVC)详解

目录 引言 一、存储卷 &#xff08;一&#xff09;存储卷定义 &#xff08;二&#xff09;存储卷的作用 1.数据持久化 2.数据共享 3.解耦 4.灵活性 &#xff08;三&#xff09;存储卷的分类 1.emptyDir存储卷 1.1 定义 1.2 特点 1.3 示例 2.hostPath存储卷 2.1 …

RabbitMQ详情

一.MQ简介 什么是MQ MQ本质是队列&#xff0c;FIFO先入先出&#xff0c;队列中存放的内容是message&#xff08;消息&#xff09;&#xff0c;还是一种跨进程的通信机制&#xff0c;用于上下游传递消息。在互联网架构中是常见的上下游“逻辑解耦物理解耦”的消息通信服务。 主…

Wpf 使用 Prism 实战开发Day28

首页汇总方块点击导航功能 点击首页汇总方块的时候&#xff0c;跳转到对应的数据页面 step1: 在IndexViewModel 中&#xff0c;给TaskBar 里面Target 属性&#xff0c;赋上要跳转的页面 step2: 创建导航事件命令和方法实现 step3: 实现导航的逻辑。通过取到 IRegionManager 的…

ClickHouse 与其他数仓架构的对比——Clickhouse 架构篇(四)

文章目录 前言ClickHouse与Hive的对比计算引擎的差异ClickHouse比Hive查询速度快的原因 ClickHouse与HBase的对比HBase的存储系统与ClickHouse的异同HBase的适用场景及ClickHouse不适合的原因 ClickHouse与Kylin的对比Kylin的架构Kylin解决性能问题的思路Kylin方案的缺陷ClickH…

信息学奥赛初赛天天练-15-阅读程序-深入解析二进制原码、反码、补码,位运算技巧,以及lowbit的神奇应用

更多资源请关注纽扣编程微信公众号 1 2021 CSP-J 阅读程序1 阅读程序&#xff08;程序输入不超过数组或字符串定义的范围&#xff1b;判断题正确填 √&#xff0c;错误填&#xff1b;除特 殊说明外&#xff0c;判断题 1.5 分&#xff0c;选择题 3 分&#xff09; 源码 #in…

字符串编码转换

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 最早的字符串编码是美国标准信息交换码&#xff0c;即ASCII码。它仅对10个数字、26个大写英文字母、26个小写英文字母及一些其他符号进行了编码。ASC…

贪心(临项交换)+01背包,蓝桥云课 搬砖

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 0搬砖 - 蓝桥云课 (lanqiao.cn) 二、解题报告 1、思路分析 将物品按照w[i] v[i]升序排序然后跑01背包就是答案 下面证明&#xff1a;&#xff08;不要问怎么想到的&#xff0c;做题多了就能想到&#xff…

总负债20.79亿,银行借款在增加,经营所得现金在减少,累计亏损在增加,易点云披露其风险(四)

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 全文共二十五章&#xff0c;总计6万字。 由于篇幅所限&#xff0c;分为&#xff08;一&#xff09;到&#xff08;五&#xff09;篇发布。 本文为《负债20.79亿,银行借款在增加,经营所得现金在减少,易点云披露风险》&am…

力扣爆刷第146天之贪心算法五连刷

力扣爆刷第146天之贪心算法五连刷 文章目录 力扣爆刷第146天之贪心算法五连刷总结一、455. 分发饼干二、376. 摆动序列三、53. 最大子数组和四、122. 买卖股票的最佳时机 II五、5. 跳跃游戏 总结 贪心算法的本质就是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 一…

使用手机短信恢复软件,完成从新手到专家的进阶之路

由于各种原因&#xff0c;如误删、手机设备损坏等&#xff0c;我们可能会面临重要短信丢失的风险。现在市面上有许多手机短信恢复软件可以帮助我们解决这个问题&#xff0c;但从新手到专家的进阶之路并非一蹴而就的过程&#xff0c;它需要耐心、实践和不断地学习。以下是一篇关…

c++编程(15)——list的模拟实现

欢迎来到博主的专栏——c编程 博主ID&#xff1a;代码小豪 文章目录 前言list的数据结构list的默认构造尾插与尾删iterator插入和删除构造、析构、赋值copy构造initializer_list构造operator 析构函数 前言 受限于博主当前的技术水平&#xff0c;暂时还不能模拟实现出STL当中用…

HTTP报文

HTTP报文 报文流 HTTP报文是在HTTP引用程序之间发送的数据块&#xff0c;这些数据块以一种文本形式的元信息开头&#xff0c;这些信息描述了报文的内容和含义&#xff0c;后面跟着可选的数据部分&#xff0c;这些报文在客户端&#xff0c;服务器和代理之间流动。 报文流入源…

Java事务入门:从基础概念到初步实践

Java事务入门&#xff1a;从基础概念到初步实践 引言1. Java事务基础概念1.1 什么是事务&#xff1f;1.2 为什么需要事务&#xff1f; 2. Java事务管理2.1 JDBC 的事务管理2.2 Spring 事务管理2.2.1 Spring JDBC2.2.1.1 添加 Spring 配置2.2.1.2 添加业务代码并测试验证 2.2.2…

在做题中学习(62):矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;二维前缀和 思路&#xff1a;读题画图才能理解意思&#xff1a;dun点点的是mat中的一个数&#xff0c;而要求的answer同位置的数 以点为中心上下左右延长 k 个单位所围成长方形的和。 因为最后answ…