【Django】初识Django快速上手

ops/2025/2/12 19:03:00/

Django简介

Django是一个高级的、开源的Python Web框架,旨在快速、高效地开发高质量的Web应用程序
https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/Django/Introduction

安装Django

pip install Django

如果要知道安装的Django的版本,可以在命令行工具下输入

python -m django --version

在这里插入图片描述

安装完django后的目录结构如下

D:\PythonEv- python.exe- Scripts- pip.exe- django-admin.exe   - Lib- 内置模块- site-packages- django         

这里会发现Scripts文件夹下多了一个djangon-admin.exe文件,这个可以执行程序的作用是创建django项目中的文件和文件夹。在django项目中会有一些默认的文件和文件夹。

创建Django项目

在终端中创建

在windows的cmd环境中,输入下面的命令:

django-admin startproject mysite

就会在当前目录下创建一个名为mysite的项目

PS D:\MyCode\Python\Web\DjangoProject> django-admin startproject mysite
PS D:\MyCode\Python\Web\DjangoProject> dir目录: D:\MyCode\Python\Web\DjangoProjectMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/4/27     16:48                mysite

进入这个mysite目录下你会发现有一个同名的mysite目录,这个mysite目录是整个项目的配置文件目录,上一个mysite目录是项目的根目录,还有一个manage.py文件,这个是项目的管理脚本。

PS D:\MyCode\Python\Web\DjangoProject> cd mysite
PS D:\MyCode\Python\Web\DjangoProject\mysite> dir目录: D:\MyCode\Python\Web\DjangoProject\mysiteMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/4/27     16:48                mysite
-a----         2024/4/27     16:48            684 manage.py
PS D:\MyCode\Python\Web\DjangoProject\mysite> cd mysite
PS D:\MyCode\Python\Web\DjangoProject\mysite\mysite> dir目录: D:\MyCode\Python\Web\DjangoProject\mysite\mysiteMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2024/4/27     16:48            405 asgi.py
-a----         2024/4/27     16:48           3345 settings.py
-a----         2024/4/27     16:48            784 urls.py
-a----         2024/4/27     16:48            405 wsgi.py
-a----         2024/4/27     16:48              0 __init__.py

项目根目录下,运行python manage.py runserver,Django会以127.0.0.1:8000这个默认配置启动项目。

打开浏览器输入127.0.0.1:8000显示下面的页面就说明成功啦

在这里插入图片描述

使用Pycharm创建

在这里插入图片描述

对比通过终端创建的Django项目和通过Pycharm创建的Django项目,会发现通过Pycharm创建的Django项目多了一个templates文件夹。

在这里插入图片描述

这是因为Pycharm在标准的基础上默认加了点东西。这个创建的templates目录可以删除,在setting.py文件中有如下代码

python">TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [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',],},},
]

在终端创建的项目中的settings.py文件里 这行代码'DIRS': [BASE_DIR / 'templates']的写法是'DIRS': []。在删除掉templates文件夹后记得要修改这行代码。

创建APP

在Django框架中,app 是指一个具有明确边界和独立功能的模块化组件,在一个Django项目中可以有多个app。

项目和应用有什么区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

通常是将app放在和manage.py同级的目录下。在mysite项目的根目录下输入如下命令(在Pychram中也是要通过Terminal终端通过命令创建)

python manage.py startapp app01

系统就会自动生成app01的目录。app01的结构如下:

PS D:\MyCode\Python\Web\DjangoProject\mysite> python manage.py startapp app01
PS D:\MyCode\Python\Web\DjangoProject\mysite> cd app01
PS D:\MyCode\Python\Web\DjangoProject\mysite\app01> dir目录: D:\MyCode\Python\Web\DjangoProject\mysite\app01Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/4/27     17:37                migrations
-a----         2024/4/27     17:37             66 admin.py
-a----         2024/4/27     17:37            148 apps.py
-a----         2024/4/27     17:37             60 models.py 对数据库操作
-a----         2024/4/27     17:37             63 tests.py	单元测试
-a----         2024/4/27     17:37             66 views.py	视图函数
-a----         2024/4/27     17:37              0 __init__.py

快速上手

  • 注册app

    在这里插入图片描述

  • 编写URL和视图函数的对应关系

    在这里插入图片描述

  • 编写视图函数

    在这里插入图片描述

  • 运行

    在这里插入图片描述

这只是一个简单的例子,实际的界面肯定是要加载html文件的,这就要引入模板。

templates模板

在app01目录下创建一个templates文件夹,在这个文件夹中创建了一个index.html文件,将view.py中的index方法修改成如下形式

python">def index(request):return render(request,"index.html")

Django会根据app的注册顺序,在每一个app的templates文件夹下去寻找index.html文件

静态文件

在开发过程中图片,css,js都会当做静态文件处理。可以在app下创建一个static目录专门存放这些静态文件。

在这里插入图片描述

引入静态文件

HTML模板文件的顶部,使用 {% load static %} 标签加载静态文件标签库。然后,使用 {% static %} 标签来引用静态文件的URL

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static "plugins/bootstrap-3.4.1/css/bootstrap.min.css" %}">
</head>
<body>
<img src="{% static "img/img.png" %}" alt=""><div class="dropdown"><button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">Dropdown<span class="caret"></span></button><ul class="dropdown-menu" aria-labelledby="dropdownMenu1"><li><a href="#">Action</a></li><li><a href="#">Another action</a></li><li><a href="#">Something else here</a></li><li role="separator" class="divider"></li><li><a href="#">Separated link</a></li></ul>
</div>
<script src="{% static "js/jquery-3.6.0.min.js" %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
<script>$(".dropdown-toggle").dropdown();
</script>
</body>
</html>

http://www.ppmy.cn/ops/20255.html

相关文章

Python爬虫--Ajax异步抓取腾讯视频评论

在某些网站 &#xff0c;当我们滑下去的时候才会显示出后面的内容 就像淘宝一样&#xff0c;滑下去才逐渐显示其他商品 这个就是采用 Ajax 做的 然后我们现在就是要编写这样的爬虫。 规律分析&#xff1a; 这个时候就要用到我们的 Fiddler 了 我们需要分析加载评论的规律 …

使用 Python 和 DirectShow 从相机捕获图像

在 Python 中使用 OpenCV 是视觉应用程序原型的一个非常好的解决方案,它允许您快速起草和测试算法。处理从文件中读取的图像非常容易,如果要处理从相机捕获的图像,则不那么容易。OpenCV 提供了一些基本方法来访问链接到 PC 的相机(通过对象),但大多数时候,即使对于简单的…

鸿蒙OpenHarmony【轻量系统 运行】 (基于Hi3861开发板)

运行 联网配置 由于Hi3861为WLAN模组&#xff0c;您可以在版本编译及烧录后&#xff0c;通过如下操作&#xff0c;使开发板实现联网功能。 保持Windows工作台和Hi3861 WLAN模组的连接状态&#xff0c;确认串口终端显示正常。 复位Hi3861 WLAN模组&#xff0c;终端界面显示“…

unity 专项一 localPosition与anchoredPosition(3D)的区别

一 、RectTransform 概念 1、RectTransform继承自Transform&#xff0c;用于描述矩形的坐标(Position)&#xff0c;尺寸(Size)&#xff0c;锚点(anchor)和中心点(pivot)等信息&#xff0c;每个2D布局下的元素都会自动生成该组件。 2、当我们在处理UI组件时&#xff0c;往往容易…

【Python】在 Linux 上安装 Miniconda 的简易指南

如今一个人听歌总是会觉得失落 幻听你在我的耳边轻轻诉说 夜色多温柔 你有多爱我 如今一个人听歌总是会觉得难过 爱已不在这里我却还没走脱 列表里的歌 随过往流动 &#x1f3b5; 许嵩《幻听》 Miniconda 是一个轻量级的 Anaconda 分发版&#xff0c;它提…

【鸿蒙开发】闪屏页面练习

1. 创建页面 Index.ets Entry Component struct Index {build() {Column() {Text("首页").fontSize(50).fontWeight(FontWeight.Bold)}.width(100%).height(100%)} }2. 创建页面 SplashScreen.ets Entry Component struct SplashScreen {State message: string Sp…

MySQL商城数据表(20-29)

20快递表 DROP TABLE IF EXISTS xuge_express; CREATE TABLE xuge_express (expressId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增id,expressName varchar(50) NOT NULL COMMENT 快递名称,-dataFlag tinyint(4) NOT NULL DEFAULT 1 COMMENT 有效标记&#xff08;1 &#x…

windows SDK编程 --- 消息之键盘消息(4)

前置知识 一、 键盘消息 在Windows操作系统中&#xff0c;键盘消息是用来通知应用程序有关键盘输入事件的一种机制。当用户在键盘上进行操作&#xff0c;比如按键或释放键时&#xff0c;Windows会生成相应的消息并发送给处理这些输入的应用程序。这些消息对于开发图形用户界面…