Python核心技术,Django学习基础入门教程(附环境安装包)
文章目录
- 前言
- 1. 环境准备
- 1.1Python安装
- 1.2选择Python开发环境
- 1.3 创建虚拟环境
- 1.4 安装 Django
- 2. 创建 Django 项目
- 3. Django项目结构介绍
- 4. 启动开发服务器
- 5. 创建 Django 应用
- 6. 应用结构介绍
- 7. 编写视图函数
- 8. 配置 URL 映射
- 9. 运行项目并访问视图
- 10. 数据库配置与模型创建
- 10.1 数据库配置
- 10.2 创建模型
- 11. 使用 Django 管理界面
- 11.1 创建超级用户
- 11.2 注册模型到管理界面
- 11.3 访问管理界面
- 12. 模板与视图结合
- 12.1 创建模板目录
- 12.2 修改视图函数
- 12.3 访问模板页面
前言
Django 是一个高级 Python Web 框架,它遵循 MVC(Model - View - Controller)架构模式的变种 MVT(Model - View - Template),可以帮助开发者快速构建安全且可扩展的网站。以下是一份 Python Django 学习基础入门教程。
1. 环境准备
1.1Python安装
访问 Python 官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载并安装 Python 3.x 版本。安装时勾选 “Add Python to PATH”,方便在命令行中使用 Python。
Python 3.7安装教程:https://blog.csdn.net/u014164303/article/details/145620847
Python 3.9安装教程:https://blog.csdn.net/u014164303/article/details/145570561
Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489
Python 3.7下载地址:https://pan.quark.cn/s/8268bf81f31f
Python 3.9下载地址:https://pan.quark.cn/s/9711a93276ad
Python 3.11下载地址:https://pan.quark.cn/s/9c44793cb24c
1.2选择Python开发环境
PyCharm 社区版(免费)或专业版(需付费或申请教育版)。安装完成后,打开 PyCharm,创建一个新的项目,在项目设置中选择之前创建的虚拟环境作为项目的 Python 解释器。PyCharm 功能强大,提供代码自动补全、调试等功能,适合开发大型项目。
Pycharm安装教程:https://blog.csdn.net/u014164303/article/details/145674773
PyCharm下载地址:https://pan.quark.cn/s/5756c8cf8b2a
1.3 创建虚拟环境
为了避免不同项目之间的依赖冲突,建议使用虚拟环境。在命令行中执行以下操作:
# 创建虚拟环境
python -m venv myenv# 激活虚拟环境(Windows)
myenv\Scripts\activate# 激活虚拟环境(Linux/Mac)
source myenv/bin/activate
1.4 安装 Django
在激活的虚拟环境中,使用 pip 安装 Django:
pip install django
2. 创建 Django 项目
在命令行中,使用以下命令创建一个新的 Django 项目:
django-admin startproject myproject
这将创建一个名为 myproject 的目录,其中包含了 Django 项目的基本结构。进入项目目录:
cd myproject
3. Django项目结构介绍
创建项目后,Django 会生成如下基本目录结构:
myproject/
│
├── myproject/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── asgi.py
│ └── wsgi.py
└── manage.py
- manage.py:一个命令行工具,用于与 Django 项目进行交互,例如启动开发服务器、创建数据库表等。
- myproject/settings.py:项目的配置文件,包含数据库连接、静态文件路径、中间件等配置信息。
- myproject/urls.py:项目的 URL 配置文件,用于将 URL 映射到相应的视图函数。
- myproject/asgi.py:用于 ASGI 服务器的入口点,处理异步请求。
- myproject/wsgi.py:用于 WSGI 服务器的入口点,处理同步请求。
4. 启动开发服务器
在项目目录下,运行以下命令启动 Django 开发服务器:
python manage.py runserver
打开浏览器,访问 http://127.0.0.1:8000,如果看到 Django 的欢迎页面,说明项目已经成功启动。
5. 创建 Django 应用
在 Django 中,项目可以包含多个应用,每个应用负责不同的功能。使用以下命令创建一个新的应用:
python manage.py startapp myapp
这将创建一个名为 myapp 的目录,包含应用的基本结构。
6. 应用结构介绍
myapp 目录的基本结构如下:
myapp/
│
├── __init__.py
├── admin.py
├── apps.py
├── migrations/
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
- models.py:定义应用的数据模型,与数据库表对应。
- views.py:定义处理请求并返回响应的视图函数。
- admin.py:用于配置 Django 自带的管理界面。
- tests.py:编写应用的测试代码。
7. 编写视图函数
打开 myapp/views.py 文件,编写一个简单的视图函数:
from django.http import HttpResponsedef hello(request):return HttpResponse("Hello, Django!")
8. 配置 URL 映射
打开 myapp 目录下的 urls.py 文件(如果没有则创建),添加以下代码:
from django.urls import path
from . import viewsurlpatterns = [path('hello/', views.hello, name='hello'),
]
然后在项目的 myproject/urls.py 文件中包含 myapp 的 URL 配置:
python
from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('', include('myapp.urls')),
]
9. 运行项目并访问视图
确保开发服务器正在运行,如果没有运行,使用 python manage.py runserver 启动。打开浏览器,访问 http://127.0.0.1:8000/hello/,你将看到页面显示 Hello, Django!。
10. 数据库配置与模型创建
10.1 数据库配置
打开 myproject/settings.py 文件,配置数据库连接信息。默认情况下,Django 使用 SQLite 数据库,如果你想使用其他数据库(如 MySQL、PostgreSQL),需要进行相应的配置。
10.2 创建模型
在 myapp/models.py 文件中定义一个简单的模型:
from django.db import modelsclass Book(models.Model):title = models.CharField(max_length=100)author = models.CharField(max_length=100)def __str__(self):return self.title
10.3 迁移数据库
在命令行中执行以下命令创建数据库表:
python manage.py makemigrations
python manage.py migrate
11. 使用 Django 管理界面
11.1 创建超级用户
在命令行中执行以下命令创建超级用户:
bash
python manage.py createsuperuser
按照提示输入用户名、邮箱和密码。
11.2 注册模型到管理界面
打开 myapp/admin.py 文件,注册 Book 模型:
from django.contrib import admin
from .models import Bookadmin.site.register(Book)
11.3 访问管理界面
启动开发服务器,打开浏览器,访问 http://127.0.0.1:8000/admin/,使用之前创建的超级用户账号登录,你可以在管理界面中对 Book 模型进行增删改查操作。
12. 模板与视图结合
12.1 创建模板目录
在 myapp 目录下创建一个名为 templates 的目录,在 templates 目录下再创建一个与应用名相同的目录 myapp,在 myapp 目录下创建一个 hello.html 文件:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Hello</title>
</head>
<body><h1>{{ message }}</h1>
</body>
</html>
12.2 修改视图函数
打开 myapp/views.py 文件,修改 hello 视图函数:
from django.shortcuts import renderdef hello(request):context = {'message': 'Hello, Django with template!'}return render(request, 'myapp/hello.html', context)
12.3 访问模板页面
启动开发服务器,打开浏览器,访问 http://127.0.0.1:8000/hello/,你将看到页面显示 Hello, Django with template!。
通过以上步骤,你已经完成了 Django 项目的基础入门学习。接下来,你可以继续深入学习 Django 的其他功能,如表单处理、用户认证、缓存等。
相关文章:
Python核心技术,Django学习基础入门教程(附环境安装包)
文章目录 前言1. 环境准备1.1Python安装1.2选择Python开发环境1.3 创建虚拟环境1.4 安装 Django 2. 创建 Django 项目3. Django项目结构介绍4. 启动开发服务器5. 创建 Django 应用6. 应用结构介绍7. 编写视图函数8. 配置 URL 映射9. 运行项目并访问视图10. 数据库配置与模型创建…...
MFC中CMutex类和CSingleLock类,配合使用疑惑
在使用CMutex过程中,看到别人使用了CSingleLock类,想着明明CMutex已经可以实现线程同步了,为什么还有使用CSingleLock类呢? 在MFC中,虽然CMutex类本身可以实现线程同步,但通常会与CSingleLock类一起使用&am…...
爬虫系列之【数据解析之正则】《二》
目录 前言 一、正则基本使用 1.1 导包 1.2 接口方法 1.3 换行匹配问题 二、实战案例 完整代码 前言 在爬虫工作中,我们主要会遇到两种类型的文本数据: JSON格式数据 HTML文档数据 对于JSON字符串数据,通常使用Python的字典操作进行键…...
HTML AI 编程助手
HTML AI 编程助手 引言 随着人工智能技术的飞速发展,编程领域也迎来了新的变革。HTML,作为网页制作的基础语言,与AI技术的结合,为开发者带来了前所未有的便利。本文将探讨HTML AI编程助手的功能、应用场景以及如何利用它提高编程…...
RFID工具柜DW-G104R|智能存储,便捷高效
一、行业背景 RFID智能工具柜(DW-G104R)RFID工具管理柜是一种结合RFID技术和智能柜设备的新型工具管理设施,通过自动化管理可以提高工具管理的效率和准确性。 在工业生产中,工具柜是工具存储和管理的重要设备。传统工具柜存在管…...
【前端面试】如何不通过正则:验证IP地址合法性
前言 在 Web 开发中,验证用户输入的 IP 地址是否合法是一个常见需求 面试中也会问到 通常,我们会使用正则表达式来完成这个任务,因为它简洁高效。然而,正则表达式对于初学者来说可能有些晦涩难懂。本文将介绍一种不使用正则表达…...
中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比
Redis是内存数据库,它的数据一般存放在内存中,一旦断电或者宕机,存在内存中的数据就会丢失。当然,它也具备数据持久化的能力,本文就将介绍Redis的三种持久化方式及其优劣势对比。 一、RDB(Redis Database&…...
Linux软连接与时区日期
软连接 使用ln命令创建软连接。 在系统中创建软连接,可以将文件,文件夹连接到其他为止。 类似于Windows系统的快捷方式。 语法:ln -s 参数1 参数2 -s选项,创建软连接。 参数1,被链接的文件或文件夹。 参数2࿰…...
安全测试之五:SQL Server注入漏洞几个实例
示例 1:在 GET 请求中测试 SQL 注入 最简单且有时最有效的情况是针对登录页面进行测试。当登录页面请求用户输入用户名和密码时,攻击者可以尝试输入以下字符串 “ or 11”(不包含双引号): https://vulnerable.web.ap…...
2024 ChatGPT大模型技术场景与商业应用视频精讲合集(45课).zip
2024ChatGPT大模型技术场景与商业应用视频精讲合集,共十三章,45课。 01. 第一章 ChatGPT:通用人工智能的典范 1.1 ChatGPT概述 .mp4 1.2 通用能力 .mp4 1.3 通用人工智能风口 .mp4 02. 第二章 大模型:ChatGPT的核心支撑 2.1 底层…...
HTTP四次挥手是什么?
四次挥手,这是TCP协议用来关闭连接的过程。四次挥手是确保两个主机之间能够安全、可靠地关闭连接的重要机制。我会用简单易懂的方式来讲解,帮助你理解它的原理和过程。 1. 什么是四次挥手? 定义 四次挥手是TCP协议用来关闭连接的过程。它通…...
前端内存泄漏的几种情况及方案
前端内存泄漏是常见但容易被忽视的问题,可能导致页面卡顿、崩溃或性能下降。以下是几种典型场景及解决方案: 1. 未清理的全局变量 场景: 意外创建全局变量(未使用 var/let/const)。主动挂载到 window 的大对象未释放…...
人工智能之数学基础:线性代数中的特殊矩阵
本文重点 矩阵是数学中一个重要的工具,在各个领域都有广泛的应用。其中,一些特殊矩阵由于具有独特的性质,在特定的问题中发挥着关键作用。 单位矩阵 单位矩阵是一种特殊的方阵,在矩阵乘法中起到类似于数字 “1” 的作用。对于一个的单位矩阵,其主对角线元素全为 1,其余…...
单例模式---是 Spring 容器的核心特性之一
1.最近面试让手写一个单例;我一直知道单例;但是一直很困惑;工作中也没怎么用过;为什么面试总问;今天我才知道思考出来;单例是spring容器的核心特性;很多知识我只知道是什么;但是没有…...
代码随想录算法【Day59】
47. 参加科学大会 思路 使用Dijkstra 算法 计算从起点(节点 1)到终点(节点 n)的最短路径。用优先队列(小顶堆) 维护当前未访问的最短路径节点,每次选择距离最短的未访问节点进行更新ÿ…...
Linux篇——工具
在有了前面的基础知识后,我们现在基本能够使用Linux的相关基本操作了,但我们知道,没有工具我们是无法便捷地实现某些功能的,因此我们这篇内容来谈谈Linux中的工具。 一、软件包管理器yum 我们知道,我们要想获得一个软…...
leetcode第77题组合
原题出于leetcode第77题https://leetcode.cn/problems/combinations/ 1.树型结构 2.回溯三部曲 递归函数的参数和返回值 确定终止条件 单层递归逻辑 3.代码 二维数组result 一维数组path void backtracking(n,k,startindex){if(path.sizek){result.append(path);return ;}…...
通过fgets获取文件内容
#include <stdio.h> char *fgets(char *s, int size, FILE *stream); 使用fgets获取文件内容 #include <stdio.h> #include <stdlib.h>int main(void) {char str[100] {0};FILE *fp NULL;fp fopen("./test_file", "r");if (NULL …...
STaR(Self-Taught Reasoner)方法:让语言模型自学推理能力(代码实现)
STaR(Self-Taught Reasoner)方法:让语言模型自学推理能力 在大型语言模型(LLM)的推理能力优化中,STaR(Self-Taught Reasoner) 是一种引人注目的技术,属于“修改提议分布…...
[创业之路-329]:华为铁三角实施的步骤
一、通用过程 华为铁三角实施的步骤主要包括以下几个关键阶段: 1、明确角色与职责 确定铁三角成员:组建由客户经理(AR)、解决方案经理(SR)和交付经理(FR)组成的铁三角团队。制定岗…...
在 Ubuntu 下通过 Docker 部署 Caddy 和 PHP-FPM 服务器
引言 大家好,今天我们要聊的主题是如何在 Ubuntu 上通过 Docker 部署 Caddy 和 PHP-FPM 服务器。Caddy 是一个现代化的 web 服务器,支持 HTTPS,配置简单;而 PHP-FPM 是 PHP 的 FastCGI 进程管理器,能够高效处理 PHP 请…...
工程化与框架系列(10)--微前端架构
微前端架构 🏗️ 微前端是一种将前端应用分解成更小、更易管理的独立部分的架构模式。本文将详细介绍微前端的核心概念、实现方案和最佳实践。 微前端概述 🌟 💡 小知识:微前端的核心理念是将前端应用分解成一系列独立部署、松耦…...
Nacos + Dubbo3 实现微服务的Rpc调用
文章目录 概念整理基本概念概念助记前提RPC与HTTP类比RPC接口类的一些理解 实例代码主体结构父项目公共接口项目提供者项目项目结构POM文件实现配置文件实现公共接口实现程序入口配置启动项目检查是否可以注入到Nacos 消费者项目项目结构POM文件实现配置文件实现注册RPC服务类实…...
算法-数据结构(图)-弗洛伊德算法复现(Floyd)
弗洛伊德算法(Floyd-Warshall算法)是一种用于求解所有节点对最短路径的动态规划算法,适用于有向图或无向图,且能处理带有负权边的图(但不能有负权环)。该算法的时间复杂度为 O(V3)O(V3),其中 VV…...
51c自动驾驶~合集22
我自己的原文哦~ https://blog.51cto.com/whaosoft/11870502 #自动驾驶数据闭环最前沿论文 近几年,自动驾驶技术的发展日新月异。从ECCV 2020的NeRF问世再到SIGGRAPH 2023的3DGS,三维重建走上了快速发展的道路!再到自动驾驶端到端技术的…...
使用Docker方式一键部署MySQL和Redis数据库详解
一、前言 数据库是现代应用开发中不可或缺的一部分,MySQL和Redis作为两种广泛使用的数据库系统,分别用于关系型数据库和键值存储。本文旨在通过Docker和Docker Compose的方式,提供一个简洁明了的一键部署方案,确保数据库服务的稳…...
Vue3 + Vite + TS,使用 Pinia
安装pinia pnpm add piniaPinia 官网 传送门 main.js引入 import { createApp } from vue import App from ./App.vue import { createPinia } pinia const app createApp(App); app.use(createPinia()) app.mount("#app")创建一个pinia,scr/stores/index impor…...
算法之刷题汇总
剑指 Offer 剑指 Offer 题解 | CS-Notes 面试笔记 Leetcode Leetcode 题解 | CS-Notes 面试笔记 GitCode - 全球开发者的开源社区,开源代码托管平台...
支持向量机(Support Vector Machine,SVM)详细解释(带示例)
目录 基本概念 线性可分情况 线性不可分情况 工作原理 示例 Python 案例 代码解释 基本概念 支持向量机是一种有监督的机器学习算法,可用于分类和回归任务。在分类问题中,SVM 的目标是找到一个最优的超平面,将不同类别的样本分隔开来…...
基于javaweb的SpringBoot在线动漫信息平台系统设计和实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...
