django新手教程

这篇具有很好参考价值的文章主要介绍了django新手教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Django简介

Django是开源的、大而且全的Web应用框架。

它独具特色,采用了MTV设计模式

它也是一款用来构建服务器的框架。这一概念如何理解呢?

应用程序有两种模式:C/S、B/S。

C/S是客户端与服务器端,这类程序一般能独立运行。

B/S是浏览器端和服务器端应用程序,这类应用程序一般要借助谷歌、火狐等浏览器来运行。

Web应用程序一般用B/S模式。

在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。而Django正是这样一种用来构建服务器的框架。

Django的设计模式介绍

Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。

Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。

       Model(模型):负责业务对象与数据库的对象(ORM)

       Template(模版):负责如何把页面展示给用户

       View(视图):负责业务逻辑,并在适当的时候调用Model和Template

此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

django新手教程,django,python,后端

Django框架的优点

强大的数据库功能

用 python 的类继承,几行代码就可以拥有一个丰富、动态的数据库操作接口(API),如果需要,你也能执行 SQL 语句ORM(Object-Relational Mapping“对象-关系-映射”),它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。

自带强大的后台功能

在admin.py中写入几行简单实现功能代码就能实现管理员的权限。

优雅的网址

在urls.py中用正则匹配网址,传递到对应的函数,更加简单的编写路由。

具有模板系统

模板系统设计简单,易扩展。代码、样式分开设计,有助于查找和修改。

高效的缓存系统

Django和memcached、redis或者其他的缓存系统可联用,页面加载速度提升。

 文章来源地址https://www.toymoban.com/news/detail-578459.html

安装pip

pip是Python的包管理工具。使用它可方便下载各种Python的插件库。

如果电脑中没有pip可点击:pip · PyPI

下载最新的pip压缩包并进行解压,进入解压的目录。

在目录上方输入cmd然后回车进入命令行。

django新手教程,django,python,后端

执行安装命令,在命令行输入:

python setup.py install

pip安装Django

安装

通过pip安装Django。

在cmd命令行中输入下面代码,然后回车进行下载安装。

pip install Django==2.2.6  -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

其中2.2.6为版本号,-i和后面是表示使用国内镜像进行下载。

验证安装成功

在cmd命令行中输入

pip list

然后回车,查看列表的版本为2.2.6的Django,则安装成功。

配置环境变量

我们需要将Django配置进环境变量,才可以使用django-admin命令(后续会使用到)

首先我们要找到Django的安装位置,可能的安装位置有如下两处:

C:\Users\Administrator\AppData\Roaming\Python\Python310\Scripts​(因每个人使用的Windows用户不一样,administrator也有可能是其他内容。python310为小编安装的python版本号,不同版本有所区别)

或者​C:\Program Files\Python310\Scripts​(python310同上)

在该文件夹下有一个django-admin.py  或 django-admin.exe 文件,有该文件的文件夹为django的安装位置,将这个安装位置(是一个文件夹路径)配置到环境变量中:

环境变量的配置方式:右键我的电脑->属性->高级系统设置->环境变量->系统变量->path变量

django新手教程,django,python,后端

pip卸载Django

如需卸载当前版本的Django,那么需要在命令行输入命令:

pip uninstall django

如果要更换Django版本,需要先卸载当前版本,然后再下载新版本。

创建一个Django项目

创建一个名为project的Django项目,在cmd命令行输入

django-admin startproject project

输入命令完会生成一个名叫project的项目包,包内一个manage.py文件和项目名同名的project包。

  • manage.py文件: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

project包里面我们可以查看到的目录结构:

django新手教程,django,python,后端

  • project/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • project/settings.py: 该 Django 项目的设置/配置。
  • project/urls.py: 该 Django 项目的 URL 声明; 这是项目的根路由
  • project/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目

settings.py项目配置文件

创建完项目后,在项目同名的project目录内有一个settings.py 文件,这个配置文件用于配置和管理Django项目的运维信息。

settings.py配置文件中的所有配置项都是大写的,项目创建时,就初始化了一些默认配置,这些默认配置承载着最基础的项目信息。

其中常用的配置项有:

    DATABASES :数据库配置

    TEMPLATES:配置HTML页面的模板地址templates

    STATICFILES_DIRS :配置静态文件

    MIDDLEWARE :配置中间件

    DEBUG:默认为True,项目上线时改为False

    ALLOWED_HOSTS:限定请求中的host值

urls.py路由系统

Django的路由系统作用是使views中处理数据的函数与请求的url建立映射关系。

请求到来之后,根据urls.py里的关系条目,查找到与请求对应的处理方法,从而返回数据给客户端http页面。

django新手教程,django,python,后端

在Django1.x版本中url映射一般是一条正则表达式,“^” 字符串的开始,“$“ 字符串的结束。项条目从头开始进行逐一对比,一旦遇到匹配项,立即执行该条目映射的视图函数或二级路由,其后的条目将不再继续匹配。因此,url路由的编写顺序至关重要!

在Django1.x中,一个url映射条目至少有两个参数,一个是正则规则,一个是视图函数,代码如下:

from django.conf.urls import url  # url()方法导入方式
url(r'^test/$',views.test)    # django2中使用re_path替换url

在Django2.x版本中路由映射使用 path() 或 re_path() 方法,path()没有了正则的那些规则,直接匹配字符串,re_patah() 用法和url()一样,path()的运用如下:

from django.urls import path,re_path    # path()方法的导入方式
path('test/',views.test)        # 不需要使用 ^ $ 等正则规则

注意:本课程中使用re_path()的正则匹配,可自行选择path()或re_path()。

当有多个应用(App)时,我们会在每个App里,各自创建一个urls.py路由模块,然后从根路由出发,将app所属的url请求,全部转发到相应的urls.py模块中。

用于开发的简易服务器

让我们来确认一下你的 Django 项目是否真的创建成功了。

下面将运行服务,访问这个项目。

如果你的当前目录不是外层的project目录的话,请切换到此目录,然后运行下面的命令:

python manage.py  runserver  8000

其中:

  • 8000为Django默认监听端口,可以省略。
  • 如果要使用其他端口可以将8000替换。
  • 在windows下Python可以简写为py。

django新手教程,django,python,后端

这时,我们可以看见:‘https://127.0.0.1:8000/’,它表示服务器成功运行。

在浏览器访问‘https://127.0.0.1:8000/’,你将会看到如下页面。

django新手教程,django,python,后端

127.0.0.1表示在本机访问,可以用localhost替代。

注意:不要关闭cmd窗口,否则服务器也将关闭。

创建一个应用

创建一个名为firstApp的应用,要先进入项目目录下,在cmd命令行输入

python manage.py startapp firstApp

project项目目录下如果出现一个名为firstApp包,则说明应用创建成功。

可以在项目所在路径命令行输入‘tree /F’查看目录层级,此时整个项目的目录层级为:

django新手教程,django,python,后端

 

注册应用

新创建的应用要进行注册才可以用。

把我们新定义的firstApp加到项目同名目录下的settings.py中的INSTALL_APPS中。把应用的名称写入 ,记得用引号包裹,逗号隔开。

django新手教程,django,python,后端

 

什么是视图?

MTV中的V表示的是View,视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应。

此响应可以是网页的HTML内容,重定向,404错误,XML文档或图像。视图本身包含返回该响应所需的任何任意逻辑。

该代码可以存在于你想要的任何地方,只要它在Python路径上即可。

为了将代码放在某处,惯例是将视图放在一个名为views.py的文件中,该文件位于项目或应用程序目录中。

编写第一个视图

打开 firstApp/view.py,把下面这些 Python 代码输入进去:

from django.http import HttpResponse    
def index(request):    
    return HttpResponse("Hello, world !")

其中,request参数是用来接收请求报文的,导入HttpResponse对象,用来向客户端返回数据。

如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。

为了创建 URLconf,请在firstApp目录里新建一个 urls.py 文件。

路由的使用

firstApp/urls.py(没有这个文件就在应用目录下创建urls.py文件,这是子路由)中,输入如下代码:

#子路由
from django.urls import path,re_path
from firstApp import views

urlpatterns = [
    re_path('', views.index, name='index'),    # re_path可以使用正则匹配视图,相当于Django1版本的url
    #...  其他的路由规则
]

下一步是要在根 URLconf 文件中指定我们创建的firstApp模块。在project/urls.py (根路由)文件的 urlpatterns列表里插入一个 include(),添加分路由,把我们自己创建的urls.py与根路由关联,代码如下:

#根路由
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),    # path匹配的是字符串
    path('', include(('firstApp.urls','app'),namespace='app')),    # namespace是命名空间
    #...  其他的路由规则
]

函数 include( )允许引用其它 URLconfs。每当Django遇到include()(来自django.conf.urls.include())时,它会去掉URL中匹配的部分并将剩下的字符串发送给include的URLconf做进一步处理,也就是转发到二级路由去。

此时用你的浏览器访问 http://localhost:8000,你将能够看见 "Hello, world!" ,这是你在index视图中定义的。

django新手教程,django,python,后端

 

Django1.x 与Django2.x中url与path的区别

Django2.x版本

Django2.x中的路由匹配视图官方推荐用path,path不支持正则匹配,直接匹配相同字符串。与url相比要去掉r、^和$等正则匹配。

#在使用namespace时需要在include中加入app_name,也就是下面的firstApp

#根路由
from django.contrib import admin
from django.urls import path,include,re_path    # path的导入方式

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include(('firstApp.urls','firstApp'),namespace='firstApp')),

Django1.x 版本

Django1.x 中路由匹配视图使用url,使用正则匹配。在Django2.x中可使用re_path替换url,其他不变。

#在使用namespace时不需要加入app_name

#根路由
from django.conf.urls import url,include    # url导入方式
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^',include(('firstApp.urls'),namespace="firstApp")),
]

在本教程中路由统一采用re_path正则匹配的方式。

什么是模型?

模型(Model)是MTV中的M。模型一般在应用目录下的models.py进行操作。

模型是数据唯一而且准确的信息来源。它包含你正在储存的数据的重要字段和行为。一般来说,每一个模型都映射一个数据库表。

记住:

  • 每个模型都是一个 Python 的类,这些类继承 django.db.models.Model
  • 模型类的每个属性都相当于一个数据库的字段。

综上所述,Django 将给你一个自动生成访问数据库的 API。

web项目的数据一般都存在数据库(database)中,模型与数据库的交互是通过ORM完成。

 

ORM

ORM是“对象-关系-映射”的简称。

它是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。

django新手教程,django,python,后端

ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。这使软件开发人员专注于业务逻辑的处理,提高了开发效率。

django新手教程,django,python,后端

 

创建模型

现在我们定义一个名为Person的样例模型,并且有first_name和last_name属性。

在应用目录下firstApp/models.py中输入:

from django.db import models
class Person(models.Model):
    first_name=models.CharField(max_length=30)
    last_name=models.CharField(max_length=30)
    class Meta:
        db_table="person"

其中类名首字母应当大写。模型继承django.db.models.Model。

first_name 和  last_name是模型的字段。

每个字段都被指定为一个类属性,并且每个属性映射为一个数据库列。

CharField表示定义的字段类型为字符串。

max_length表示字段的最大长度。

db_table='person’是定义模型类在数据库中生成的表单的名字。

以上的 Person 模型能创建一个数据库表,如下:

CREATE TABLE myapp_person (
    "id" serial NOT NULL PRIMARY KEY,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) NOT NULL
);

数据库的配置

通常,这个配置文件使用 SQLite 作为默认数据库。如果你不熟悉数据库,或者只是想尝试下 Django,这是最简单的选择。

Python 内置 SQLite,所以你无需安装额外东西来使用它。

本课程使用的是MySQL数据库,如果使用默认数据库无需进行下面更改。

用pip安装mysqlclient,mysqlclient是在 Python3.x 版本中用于连接 MySQL 服务器的一个库。

pip install mysqlclient

注意:在Django2中使用pymysql可以会版本报错,所以最好使用mysqlclient。

安装完,打开 project/setttings.py这是个包含了 Django 项目设置的 Python 模块。找到DATABASES对其进行配置。

django新手教程,django,python,后端

其中MySQL的默认端口号为3306,如果是本机的数据库,HOST填入:127.0.0.1。

如此操作,数据库的基本配置就完成了。

数据迁移

 创建完模型后,我们需要找到项目目录(manage.py所在的目录),生成一个迁移文件,在命令行输入:

python manage.py makemigrations

生成迁移文件之后,执行迁移文件,请使用下面的指令:

python manage.py migrate

执行完迁移,数据库中会根据模型中类和属性生成对应的表。

 

模型属性(objects)

objects是类的一个属性。

objects是Manager类型的对象,用于与数据库进行交互,称之为管理器对象。

当定义的模型没有指定管理器对象,系统会默认创建一个名为objects的属性作为管理器对象。

objects也可自定义:

首先,自定义一个继承models.Manager的管理类,代码中重写get_queryset方法对数据进行了过滤。代码如下:

class StudentManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(isDelete=False)

然后,自定义管理器对象:

books=StudentManager()

一旦自定义管理器对象,默认的objects就不再自动生成。可以用自定义的管理器对象替它。

objects一般是通过‘类名.objects ’的方法使用

创建对象

创建对象就是根据模型中定义的类创建一个实例对象,这个对象拥有实际的属性值。

当创建对象时,Django不会与数据库进行交互,调用save()方法时才与数据库进行交互,将对象保存到数据库中。

创建对象的方法有多种,最简单的方法是在类中自定义一个类方法创建对象。定义一个create类方法具体代码如下:

class Student(models.Model):
    name = models.CharField(max_length=20)
    age = models.IntegerField()
    @classmethod    #类方法
    def create(cls, name, age):
        return cls(name=name,age=age)
    class Meta:
        db_table="student"

类方法的定义要在函数的上方添加@classmethod,类方法把类当做第一个参数传给cls,后面的参数就是类的属性的形参,最后返回的把参数赋值给类属性。

创建对象一般在视图函数中,利用类方法创建一个名为小明,年龄为10的实例对象,代码如下:

name="小明"
age="10"
s3 = Student.create(name,age)
s3.save()

执行save()才能保存到数据库。

django新手教程,django,python,后端

django新手教程,django,python,后端django新手教程,django,python,后端 

 django新手教程,django,python,后端

 

 

到了这里,关于django新手教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 安装教程,新手入门(超详细)含Pycharm开发环境安装教程

    目录 一、Python介绍 二、Python安装教程 (一)Python的下载 (二)Python的安装 三、Pycharm开发工具的安装 (一)Pycharm介绍 (二)Pycharm的下载 (三)Pycharm的安装 ​        Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替

    2024年01月20日
    浏览(81)
  • Python电商爬虫保姆级入门教程(纯新手向)

    图灵Python课堂 长沙图灵教育于2001年开始进入教育行业,立足泛IT类职业教育,以打造高新技术人才为宗旨,专注于提供多层次、个性化的职业技能培训课程,为各行业培养技术开发、应用和管理等岗位的中高端人才,致力于成为优质的职业教育内容提供商。 0 1 Python优势 1、

    2024年02月15日
    浏览(45)
  • Python保姆级教程 数据类型—新手小白入门必看系列

    推荐使用压缩软件和杀毒软件 7 - zip 使用火绒 优点: 代码说明 没注释的代码 有注释的代码 不让解释器执行注释的那句话 单行注释快捷键:ctrl + ? \\\"\\\"\\\"\\\"\\\"\\\" (三个双引号) 185730213551 什么是变量:可以改变的量 计算机用来存贮数据的盒子,想用这个数据,就直接那盒子就好了

    2024年02月16日
    浏览(54)
  • 新手教程 | Python自动化测试Selenium+chrome连接HTTP代理(账密+白名单)

    Selenium 有很多功能, 但其核心是 web 浏览器自动化的一个工具集,它允许用户模拟终端用户执行的常见活动;将文本输入到字段中,选择下拉值和复选框,并单击文档中的链接。 它还提供许多其他控件,比如鼠标移动、任意 JavaScript 执行等等。 虽然 Selenium 主要用于网

    2024年02月06日
    浏览(53)
  • 超适合新手使用的教程:Python环境配置+Pycharm安装+扩展包安装(以Numpy+mkl为例)

    目录 一、Python环境配置 1.Python下载 2.python安装 3.Python验证安装  二、Pycharm环境配置 1.pycharm下载 2.pycharm配置python 3.pycharm编译器更新 三、Numpy+mkl库包的安装 1.通过Python自下载(command命令符)  2.通过下载包到本地安装 3.通过清华镜像安装(国内最好用的办法!!!) 4.检查包是否安装成

    2024年02月06日
    浏览(55)
  • 从零开始搭建后端信息管理系统(新手小白比如)

    如果你是新手小白,首先我们要进行一些准备工作,安装一些基础软件, 备注一下:这里安装的vue环境的后台管理系统,不同的后台管理系统,需要安装不同的插件 准备工作: 安装 Visual Studio Code nodejs 配置插件    首先安装开发环境Visual Studio Code 打开官网:下载 Visual Stu

    2024年04月11日
    浏览(59)
  • 很合适新手入门使用的Python游戏开发包pygame实例教程-01[开发环境配置与第一个界面]

    我们假定你已经安装好了我们开发python程序的sublime text,如果不知道怎么安装的可以参照我前面的博文。这里只需要解决的是配置好Pygame的问题。本篇博文主要解决开发环境配置以及第一个游戏界面的显示问题。 文章原出处: https://blog.csdn.net/haigear/article/details/130173836 没有

    2024年01月25日
    浏览(94)
  • Django新手必看:如何创建应用和定义数据表。(详细讲解)

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 🎁🎁: 文章末尾扫描二维码可以加入粉丝交流群,不定期免费送书。 Django 项目就是基于 Django 框架

    2024年02月08日
    浏览(54)
  • 【后端】Django与Django REST Framework的结合使用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 随着开发语言及人工智能工具的普及,使得越来越多的人会主动学习使用一些开发语言,本文主要介绍Django与Django REST Framework的结合使用。 创建Django项目通常包括以下步骤: 安装Django : 首先,确保你的

    2024年04月26日
    浏览(35)
  • Django后端开发——Django应用及分布式路由

    B站网课:点击蓝色字体跳转 或者复制链接在浏览器打开:https://www.bilibili.com/video/BV1vK4y1o7jH?p=14vd_source=597e21cf34ffcdce468ba00be2177e8a 终端: 在settings.py的INSTALLED_APPS中添加应用名即可 news开头的交由news管理 music开头的交由music管理 Step1 - 主路由中调用include函数 语法:include(‘app名

    2024年02月19日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包