Python框架——最详细的Django框架入门

【python】Django——django简介、django安装、创建项目、快速上手 Django 是一个高效、功能强大的 Web 应用程序框架,采用 Python 编写而成。它遵循了 MTV(模型-模板-视图)的软件设计模式,旨在帮助开发者快速构建可维护的 Web 应用程序。模型(Model): Django 的模型层提供了对数据库的抽象和管理。通过定义模型类,开发者可以使用简单的 Python 代码来描述数据结构和关系,并自动映射到底层数据库。这样,开发者可以通过操作模型对象来进行数据库操作,而无需直接编写 SQL 语句。视图(View) 阅读详情
AI摘要

本文是一篇关于Django框架的入门教程,介绍了如何搭建Django环境,创建项目和应用,配置settings.py,以及编写视图和URL映射。通过实例展示了如何实现简单的'Hello World'程序,帮助初学者快速上手Django。

Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T。

在学习Django的过程中将学到的知识进行总结分享出来,温故而知新,如果能帮助到想学Django但不知道如何开始的同学是再好不过了。

开始前的准备工作

搭建虚拟环境

随着我们项目的积累,有时候不同项目需要用不到不同版本的包,可能会产生冲突,这时候我们需要一个虚拟环境将每个项目需要的包进行独立,这样就能有效避免冲突。

安装MySql

Django支持很多中类型的数据库,默认配置的sqlite3,在学习过程中我们用到了Mysql
安装Python3、pip、PyCharm

Django2.0和以后的版本不再支持Python2.X,所以我们需要安装Python3.6版本的解释器。
pip是一个通用的Python包管理工具,可以对包进行查找、安装、卸载
PyCharm是一种Python IDE,墙裂推荐。

以上准备工作,小伙伴们可以自行网上查找相关教程。

初探Django

通过准备工作我们的系统中已经安装pip,通过使用pip安装最新版的Django。

pip3 install django

安装完成之后我们可以通过 python3 -m django --version 查看当前Django版本

(django_venv) xxxAir:djangoDemo xxx$ python3 -m django --version
2.1.3

创建一个Django项目

1、我们可以通过终端输入命令行创建一个项目

这里我的项目名为 djangoDemo

django-admin.py startproject djangoDemo

2、也可以通过pycharm的create new project进行创建
在这里插入图片描述

查看Django项目的目录结构

切换终端到项目所属目录,使用tree命令可以查看项目结构

mac安装tree:        brew install
ubuntu安装tree:    sudo apt-get install tree
centos安装tree:     sudo yum -y install tree

执行 「tree + 项目名」
tree djangoDemo

djangoDemo/
├── djangoDemo
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

目录说明:

1、djangoDemo/djangoDemo: 项目最初的Python包

2、djangoDemo/init.py: 一个空文件,声明所在目录的包为一个Python包

3、djangoDemo/settings.py: 管理项目的配置信息

4、djangoDemo/urls.py: 声明请求url的映射关系

5、djangoDemo/wsgi.py: python程序和web服务器的通信协议

6、manage.py: 一个命令行工具,用来和Django项目进行交互,如前面创建项目就用到了该文件。

项目配置文件–setting.py

setting.py 文件用来配置整个项目,里面的字段非常多,所以在开始之前有必要先都了解一下默认的配置有哪些

import os

# 项目的相对路径,启动服务的时候会运行这个文件所在路径的manage.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 安全密钥
SECRET_KEY = 'l&!v_npes(!j82+x(44vt+h&#ag7io2x&shnf*9^8fv0d63!0r'

# 是否开启Debug
DEBUG = True

# 允许访问的主机ip,可以用通配符*
ALLOWED_HOSTS = []

# Application definition

# 用来注册App 前6个是django自带的应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

# 中间件 ,需要加载的中间件。比如在请求前和响应后根据规则去执行某些代码的方法
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# 指定URL列表文件 父级URL配置
ROOT_URLCONF = 'djangoDemo.urls'

# 加载网页模板路径
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
            ],
        },
    },
]

# WSGI的配置文件路径
WSGI_APPLICATION = 'djangoDemo.wsgi.application'

# 数据库配置 默认的数据库为sqlite
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# 相关密码验证
AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

# 语言设置 默认英语, 中文是zh-hans
LANGUAGE_CODE = 'en-us'

# 时区设置,中国的是:Asia/Shanghai
TIME_ZONE = 'UTC'

# i18n字符集是否支持
USE_I18N = True

USE_L10N = True

# 是否使用timezone
# 保证存储到数据库中的是 UTC 时间;
# 在函数之间传递时间参数时,确保时间已经转换成 UTC 时间;
USE_TZ = True

# 静态文件路径
STATIC_URL = '/static/'
复制代码App
接下来要引入一个APP的概念,举个例子我们需要开发一个电商网站,那么产品列表、购物车、下单等等这都是不同的业务线,我们可以把每条业务线都看做一个App。
创建一个名为app_demo的应用,  在终端项目目录下执行
 python3 manage.py startapp app_demo
复制代码再次tree 查看目录结构
├── app_demo
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── djangoDemo
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   └── settings.cpython-36.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

app_demo目录结构

  • admin:对应应用后台管理配置文件
  • apps:对应应用的配置文件
  • models:数据模块,用于设计数据库等
  • tests:编写测试脚本
  • views:视图层,直接和浏览器进行交互

每次新建一个App我们需要将其在settings.py文件中的INSTALLED_APPS里进行注册,这样程序才能够找到这个服务

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_demo', # 注册新创建的应用app
]

HelloWorld

helloworld任何一门语言的开始,所以,我们入门的带个程序也从这里开始。前面说过Django框架式MVT结构的,这里由于没有用到数据和模板所以只需要在V(视图层)进行coding。

打开app_demo目录下的view.py, 开始coding

from django.http import HttpResponse
"""
 django.http模块中定义了HttpResponse 对象的API
 作用:不需要调用模板直接返回数据
 HttpResponse属性:
    content: 返回内容,字符串类型
    charset: 响应的编码字符集
    status_code: HTTP响应的状态码
"""

"""
hello 为一个视图函数,每个视图函数必须第一个参数为request。哪怕用不到request。
request是django.http.HttpRequest的一个实例
"""
def hello(request):
    return HttpResponse('Hello World')

视图层写完,最终通过HttpResponse将’Hello World’进行响应。

前面提到过urls是用来声明请求url的映射关系。也就是程序通过urls里的配置来找到我们写的这个view。

# 导入url模块
from django.conf.urls import url

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^hello/$', views.hello)
]

上面的代码就是在djangoDemo下的view文件中加入

from django.conf.urls import url
url(r'^hello/$', views.hello)

在urlpatterns中加入url(‘hello/’, views.hello),第一个元素是匹配的字符串,第二个元素为相对应的视图模块。

也就是告诉django所有url/hello/ 的请求都是指向了views.hello 这个视图。hello前不需要加’/‘,因为域名的末尾一定会有’/‘。其中’^‘为严格前匹配,’,浏览器输入http://localhost:8000/hello/a/b 也是可以访问view.hello视图

再来个栗子

app_demo的views模块中继续添加(和前面写的hello视图同文件)
def msg(request, name, age):
    return HttpResponse('My name is ' + name + ',i am ' + age + ' years old')

setting中app_demo这个app前面已经注册过,所以不需要再次注册,在urls配置他们的关系映射

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^hello/$', views.hello),
    url(r'^msg/(?P<name>\w+)/(?P<age>\d+)/$', views.msg)
]

这个就是通过正则去匹配我们的url,(?P\w+) 表示name字段的值范围为非数字的字符即:a-z A-Z 汉字、(?P\d+) 表示age字段只能是数字

启动项目

通过执行如下命令来启动项目

python3 manage.py runserver 

默认端口号为:8000,当8000端口被占用时,我们也可以手动去更换端口,如更换成8080

python3 manage.py runserver 8080

控制台输入一下内容则表示启动成功:

Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

November 08, 2018 - 05:34:59
Django version 2.1.3, using settings 'djangoDemo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

项目启动成功浏览器输入
http://localhost:8000/hello/
我们可以看到如下界面
在这里插入图片描述

【Python】Django 框架 在我们输入 这行看似开启一切的命令之前,我们必须先回答一个根本性的问题:Django 究竟是什么?答案很简单:它是一个用 Python 语言编写的 Web 框架。但这个答案也引出了一个更深层次的问题:Python 又是什么?对于绝大多数开发者而言,Python 是一门动态、高级、解释型的语言。我们享受其简洁的语法、丰富的库和强大的表达能力。但这些特性并非凭空而来,它们构建于一个坚实而复杂的底层基础之上。我们日常使用的标准 Python 解释器,被称为 CPython,它的核心——从内存管理到对象模型,从类 阅读详情

相关推荐

史上最详细Django入门教程

Django简介特点重量级框架MVT模式工程搭建1. 创建虚拟环境2. 安装Django3. 虚拟环境和pip的命令创建工程1. 创建2. 工程目录说明3. 运行开发服务器创建子应用1. 创建2. 子应用目录说明3. 注册安装子应用创建视图1. 创建2. 定义路由URL1) 在子应用中新建一个urls.py文件用于保存该应用的路由。2) 在users/urls.py文件中定义路由信息。3) 在工程总路由demo/urls.py中添加子应用的路由数据。4) 启动运行 简介 Django,发音为[`dʒæŋɡə

披荆斩棘,浪荡在网安的公子 5130

Django项目完整搭建流程(简单的用户名及登录密码提交入库后展示)

原文转载自:http://www.cnblogs.com/Leo_wl/p/5824541.html 一、Django简介   百度百科:开放源代码的Web应用框架,由Python语言编写……   重点:一个大而全的框架,啥都替你考虑好了。 1. web框架介绍   具体介绍Django之前,必须先介绍WEB框架等概念。   web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子。   一般web框架的架构是这样的:   其它基于.

bensam的博客 5493

python django框架入门

本文详细介绍了如何使用Django框架创建一个简单的博客项目。首先,通过创建虚拟环境并安装Django,接着使用django-admin命令创建项目和应用。然后,配置项目设置,包括数据库和语言设置。接下来,定义数据模型(如文章和评论),并通过迁移命令将模型同步到数据库。随后,创建超级用户并配置管理后台,以便管理文章和评论。最后,配置URL路由、创建视图和模板,实现文章列表的展示功能。整个过程涵盖了Django项目开发的基本步骤,适合初学者快速上手。

liangzonghua的博客 416

Python框架Django入门教程

Django入门教程,项目创建启动,使用Django进行增删改查

凡梦千华的博客 1万+

《Django框架从入门到实战》目录

《Django框架从入门到实战》目录

孤寒者的博客 2万+

【python web】一文掌握 Django 详细用法(超级详细!)

Django接收 URL,检查urls.py文件,并调用与 URL 匹配的视图。位于views.py中的视图检查相关模型。模型是从models.py文件中导入的。然后视图将数据发送到模板文件夹中的指定模板。模板包含HTML和Django标记,并使用数据将完成的HTML内容返回给浏览器。

数据知道的博客 1万+

Python框架——最详细的Django框架入门!

Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T。

weixin_67991858的博客 1310

Django框架从入门到精通:Python Web开发指南

Python是一种广泛使用的高级编程语言,由Guido van Rossum于1989年底发明。它的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进来定义代码块,而不是使用大括号或关键字)。Python支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。Python的解释器和广泛的标准库使其适用于Web开发、科学计算、数据可视化、人工智能和许多其他领域。Django框架最初是作为报纸网站的内部项目而开发的,在2003年到2005年间被创建。

weixin_29050829的博客 1017

python——Django框架

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

m0_65995252的博客 7070

最简单的Python Django入门教程.pdf

。。。

3步搞定专利数据爬取:用Selenium绕过国家知识产权局反爬(附完整代码)

本文详细介绍了3种高效获取专利数据的技术方案,重点解析了使用Selenium绕过国家知识产权局反爬的实战方法,并提供了完整代码示例。文章还探讨了Requests+lxml轻量级方案和混合技术策略,帮助开发者根据需求选择最佳数据爬取方案,特别适合需要专利统计数据的开发者参考。

weixin_29029995的博客 1111

python 的web框架 django 的入门教程 1

Python下有许多Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 本文是一个python 的web 构架Django 的入门教程,根据https://docs.djangoproject.com/en/2.2/intro/tutorial01/完成的测试。 下一个教...

曾立文的博客 1055

OpenVPN 新增 windows 客户端

虚拟私人网络(Virtual Private Network,简称VPN)是一种网络技术,它允许用户通过公共网络(如互联网)建立一个安全的连接通道。本文介绍如何添加 windows 客户端。

利昂的技术存档 3769

python的Django框架入门

Django是一个开源的Python Web开发框架,遵循架构,是一个全功能的Web框架,Django的模块化设计允许开发者通过添加自定义插件、使用第三方库等方式来增强其功能。

Wgq0731的博客 1526

基于C#的跨平台上位机开发:一次编写,多平台运行

摘要: 本文探讨了如何利用C#进行跨平台上位机开发,以适配Windows、Linux、macOS等多平台需求。通过分析传统单平台开发的局限性(如API差异、硬件接口兼容性),提出基于.NET 5/6/7的解决方案,重点推荐Avalonia(类WPF的跨平台UI框架)和GtkSharp(基于GTK+)实现图形界面。同时,针对硬件通信需求,介绍了System.IO.Ports串口通信和LibUsbDotNet的跨平台支持,并强调多平台调试(VS Code、Docker)的重要性,最终实现一次编码、多端部署的高效

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1409

【AI深究】合成数据(Synthetic Data)深度解析:原理、算法与工程实践——全网最详细流程|核心原理、主流方法、数学表达、工程实践与细节、未来趋势|GAN、VAE、语言模型LLM合成如GPT

大家好,我是爱酱。本篇延续将会系统梳理合成数据(Synthetic Data)的核心原理、主流方法、数学表达、工程实践与未来趋势,结合数学公式,帮助你全面理解这一AI建模的关键技术。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

AI人工智能爱酱~你的AI学习好帮手~ 4930

最详细的Django框架入门

Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T。在学习Django的过程中将学到的知识进行总结分享出来,温故而知新,如果能帮助到想学Django但不知道如何开始的同学是再好不过了。 开始前的准备工作 搭建虚拟环境 随着我们项目的积累,有时候不同项...

try2035的博客 360

【数字IC设计】Centos 7桌面版 安装Synopsys EDA Tools

简称DC,是Synopsys公司用于做电路综合的核心工具,可以将HDL描述的电路转换为基于工艺库的门级网表。

qiumingT的博客 9802

Python之Flask与Django后端框架详细对比

一、快速介绍 Django Django是一个Python Web框架,适合时间不多的完美主义者。 Django提供了一个功能齐全的Model-View-Controller框架。 Django使开发人员无需第三方库和工具即可创建网站。 Django于2005年7月15日发布,由Django Software Foundation(DSF)开发和管理,它是免费的并且具有更多版本的开源。 二、快速介绍Flask Flask是基于Python的微框架 ,Flask是由奥地利开发商Armin Ronacher于2

liuchaoqi06的博客 1767

【定制功能】LVGL 页面管理

页面管理的主要针对实际复杂的UI项目的。支持多页面管理,包含页面跳转和返回(主要是方便项目功能管理)支持后台页面自动销毁、前台页面自动创建(主要是节约资源使用)支持语言切换逻辑(页面重建功能)支持主题切换逻辑支持页面切换动画效果首先,页面管理是针对act_src图层来讲的。仅在screens数组中供act_src切换的对象树才会被此页面管理功能所管理。这意味着,如果top_layer或者sys_layer图层上,有页面需要重建时,需要特殊处理(实际项目中top_layer或者。

Bigan(安)的博客 5751

风控域——知识图谱相关原理

本文全面介绍了知识图谱在风控领域的应用原理。从基础知识入手,阐述了知识图谱的定义、概念及应用场景,重点聚焦于金融风控。进一步讲解了知识图谱的技术架构,涵盖计算、融合与构建等方面。深入探讨了知识表示、建模、抽取、挖掘、存储、融合、检索和推理等关键技术原理,并结合金融风控实际需求,详细说明了各技术环节的具体应用方法与流程,为构建高效风控知识图谱提供了理论与实践指导。

庄小焱 608

Django开发入门 – 1.搭建基于Python Web框架Django的IDE开发环境

本文简要介绍搭建Python Web框架Django开发所必需的IDE开发环境,希望对读者有所帮助。

jackson_lingua的博客 1867

华为od 面试八股文_C++_04_含答案

华为od 面试八股文_C++_04_含答案

MISAYAONE的博客 2473

Python开发-Django快速入门

如果你是一位python开发初学者,而且你对Django一无所知,那下面介绍的内容将会是你所需要知道的关于 Django 的知识

huidaoli 5316

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Django介绍:探索Python最受欢迎的Web框架

编辑Django作为Python最受欢迎的Web框架之一,具有强大的功能和丰富的生态系统,为开发者提供了一个快速、高效的开发平台。通过本文的介绍,相信您已经对Django有了更深入的了解,并可以开始着手使用它来构建您的下一个Web项目了!

Code掘金的博客 1089

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python框架之Django使用

稍具规模的软件系统都会使用MVC架构(或者是从MVC演进出的其他架构),Django项目中我们称之为MTV,MTV中的M跟MVC中的M没有区别,就是代表数据的模型,T代表了网页模板(显示数据的视图),而V代表了视图函数,在Django框架中,视图函数和Django框架本身一起扮演了MVC中C的角色。Web开发的早期阶段,开发者需要手动编写每个页面,例如一个新闻门户网站,每天都要修改它的HTML页面,随着网站规模和体量的增大,这种做法一定是非常糟糕的。Python的Web框架有上百个,比它的关键字还要多。

优快云_LiMingfly的博客 954

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: python入门级教程:分享一个Python的打包神器——Nuitka
下一篇: Python函数定义以及调用的函数的参数
大模型教程.
博客等级 码龄5年 5275粉丝 2887原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值