C语言
您现在所在的位置:首页>企业动态>C语言

技术分享|Django搭建

编辑:学到牛牛IT培训    发布日期: 2022-09-30 16:10:38  

1、创建项目

Django是一个开放源代码的Web应用框架,由python写成。采用了MTV的框架模式,即模型M,视图V、模版T

在创建Django项目前,需要先安装 django库,安装方式如下:

 图片


创建Django项目有两种方法,即终端创建和基于Pycharm创建。

1) 终端创建

在终端中创建是以命令方式创建,它将创建出标准目录结构,创建步骤如下:

第一步:打开CMD终端;

第二步:在CMD终端中进入项目存放的目录;

图片 

第三步:执行命令创建Django项目,执行命令如下。

django-admin startproject 项目名


图片 


执行上述命令后,会在当前目录下创建项目名为DjangoTest2Django项目,目录结构如下:


图片 


2) 基于Pycharm创建

基于Pycharm创建Django项目比命令方式创建要简单一些,它会自动的创建标准目录结构(手动创建结构)外,还会给添加一些辅助目录结构(多余的目录和文件可以删除)。注意,使用Pycharm来创建Django项目,需要使用企业版的Pycharm编译工具。

具体的创建步骤如下:

第一步:点击New Project按钮创建新项目。


图片


第二步:创建Django项目,并设置路径和解析器。


图片 

点击Create按钮后,会在Pycharm编译工具中创建以下目录结构。


图片 


2Django APP


1) app简介


当项目足够大时,例如路由或者静态文件、模板都写在了一起,比较臃肿,因此,我们可以创建app应用进行独立开发(分模块开发)

apppython中分模块开发的模块,它类似一个目录把一批次的资料给汇总,在一个Django项目中有多个app,每个app中都有独立的资源。

如果开发比较简洁,用不到多个app,一般情况下项目可创建在1app中。


大型Django项目的app结构如下图:



图片 



2) 创建app


创建app需要在Pycharm终端中执行,执行代码如下所示。


图片


图片


执行上述代码后需要刷新,项目结构中才会出现app目录,app目录结构如下图所示。


图片

3、启动Django


app创建后需要注册才能正常使用,具体步骤如下。


第一步:在setting.py文件INSTALLED_APPS数组中添加app路径。



图片


其中,App001Configapps.py文件中的一个类,它是该文件的入口。


图片 


第二步:在urls.py文件中编写URL和视图函数对应关系。


urls.py文件中urlpatterns数组中添加对应路径,该数组中的每一个元素即是一个对应路径,其格式如下。


图片


其中”index/”是访问的URL路径,(假如访问路径是www.xuedao.com/index),index将自动拼接在www.xuedao.com域名下。


views.index是对应执行的函数,viewsapp下面的views.py文件,使用前需要导入该文件,如下代码所示。


图片


indexviews.py文件中的函数,该函数需要自己创建,如下代码。


图片


详细代码如下图所示:


图片 

其中views.py视图文件是用来编写执行事件的函数文件,它类似于JavaWeb中的控制层。


编写多个对应关系。


图片


第三步:启动Django项目


启动Django项目有两种运行方式:


1种:命令行方式;在Pycharm终端执行以下命令即可运行。


图片


2种:Pycharm启动方式;点击Pyhcarm中绿色运行按钮即可,如下图所示。


图片 

注意:运行后如果出现“Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。”错误。说明端口号被占用,一般情况酷狗音乐与Django的冲突了,只需要停止酷狗音乐即可。


第四步:访问Django页面


Django服务器启动之后,即可在浏览器URL地址栏中输入127.0.0.1:8000/index访问Django页面,如果出现以下内容则Django项目搭建成功。


图片 


4templates目录


如果需要跳转到HTML页面,在函数返回值时返回render(request, html)即可,Python编译器会自动的在当前apptemplates目录(自已创建)下查询该HTML页面,如果成功匹配则返回到该页面,如果没有找到匹配的HTML页面则报错。


图片 

如果当前的apptemplates目录中没有找到指定的HTML文件,Python将到其它的templates目录中查找,如果当前apptemplates目录中有指定的HTML文件,其它templates目录中也有指定的HTML文件,则会优先使用当前apptemplates目录中的HTML文件。


图片 

5、静态文件


在开发过程中,图片、CSSJS均称为静态文件,静态文件必须存放在当前appstatic目录(自己创建)中。


HTML文件中使用静态文件前需要先使用{% load static %}声明,引用时也需要使用{% static ‘xx’%}来引用,如下图所示。


 图片



静态文件路径可以在settings.py文件的STATIC_URL属性中配置。



6Django模板


Django模板即定义了Django在函数和HTML页面使用的基础语法。


1) 从函数中传值到HTML页面,并在HTML页面中将数据展示出来。


图片 


传入的数据是字典格式进行传递,HTML页面中根据传入字典的key来获取对象的值。字典的值可以为字符串、数组、字典等类型。



2循环语句


传入数据值为数组时,HTML页面中可以通过下标获取值,也可以通过循环来获取值,示例如下。


图片 

3传入数据值为字典时



图片 

4传入数据值为字典集时


图片 

5条件语句


if条件分支语句使用{ % if k==”” % }开始,{ %endif% }结尾,示例如下图。


图片 


if ... else条件分支语句使用{ % if k==”” % }开始,随后跟着{ % else % },最后以{ %endif% }结尾,示例如下图。



图片 

多条件分支语句使用{ % if k==”” % }开始,随后跟着多个{ % elif % },最后以{ %endif% }结尾,示例如下图。


图片 


7、请求与响应


1)请求


views.py文件中每个函数里都有一个request变量(命名任意),其它该变量接收的是request对象,它封装了用户发送过来的所有数据。该对象提供了一系列的方式用于获取用户发送过来的数据,常用方式如下所示。


图片


 图片 


其中:“后台响应数据”字符串内容是返回给请求者。


2)响应


响应就是后台返回给请求者的数据,在views.py函数中使用return来响应数据,且有多种响应方式。


a.响应字符串给请求者,示例如下:


图片

图片 


b.将数据响应给指定的页面,示例如下:


图片


其中request是请求对象,xx.html是指定的HTML页面,“数据”是响应的数据,该数据是字典类型。


 图片


reander()读以HTML的内容,并渲染后转换成HTML字符串,然后把HTML字符串返回给用户浏览器。


c.重定向


如果要跳转到外部网站,可以使用redirect(str)函数进行重定向,其中str是重定向的URL地址,该地址只能为外部网站的URL地址,示例如下所示。


图片 

执行重定向后,浏览器上的URL地址将变为指定的URL地址。



用户登录案例:



8、数据库操作l


Django中可以使用pymysql原生方式操作mysql数据库,也可以使用ORM框架方式操作数据库,在实际开发中,一般使用ORM方式操作数据库,这种方式是对pymysql高度封装,操作更加的简捷、方便。


使用ORM框架需要先安装mysqlclient第三方模块,安装方式如下:


图片


ORM框架主要有两个功能,1)操作数据库中的表(不能操作数据库);2)操作表中的数据。


1)数据数据库中的表


a.连接数据


操作表之前需要先连接数据库,数据库连接在settings.py文件的DATABASES属性中设置,如下图。


图片


b.操作表


操作表主要是对表的创建、删除和修改操作。


操作表在appmodels.py文件中操作,操作前需要导入models库,如下所示:


图片


然后在创建一个自定义类(表名 = app名 类名),在类中使用models库中的方式创建字符,如下代码:


图片


生成的数据库表对应说明:


数据库表名                                  


图片


执行生成表命名,在Pycharm终端中执行makemigrations,用于生成一个临时文件,执行migrate,用于根据临时文件生成数据库表,具体命令如下:


第一步:python manage.py makemigration


第二步:python manage.py migrate



2)操作表中的数据


在Django中可以使用pymysql原生方式操作mysql数据库,也可以使用ORM框架方式操作数据库,在实际开发中,一般使用ORM方式操作数据库,这种方式是对pymsql高度封装,使操作更加的简捷、方便。


使用ORM框架需要先安装mysqlclient第三方模块,安装方式如下:

pip3 install mysqlclient


操作表之前需要先连接数据库,数据库连接在setting.py文件的DATABASES列表中设置。


图片

操作表主要是对表的创建、删除和修改操作。


操作表在APP的models.py文件中操作,操作前需要导入models库。


from django.db import models


然后在创建一个自定义类(生成的表名=APP名+类名),在类中使用models库中的方式创建字符串。


图片


执行生成表命令


表对应的类创建好后,需要执行相关命令才能生成相关表。

执行生成表命令,在Pycharm终端中使用makemigrations命令将检测到的模型创建新的迁移,然后使用migrate命令将数据库状态与当前模型集和迁移集同步。


图片

 修改和删除

删除表或删除某个字段,只需要将表或字段对应的类或属性给注释,然后执行makemigrations和migrate命令即可。


添加表或字段,在models.py文件中添加一个类或属性,然后执行makemigrations和migrate命令即可。

在表中新增列,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据。新增列设置数据有三种方式。

第一种:手动输入一个值


第二种:设置默认值 models.IntegerField(default=2)


第三种:允许为空 models.IntegerField(null=True, blank=True)


操作表中数据


添加数据;添加数据在views.py文件中操作,使用类.object.create(字段=值, 字段2=值, ...)进行添加。对应类属于models.py文件,所在使用添加操作前需要先引用该文件中的类,操作如下


图片

注意:在插入数据时,是否给定值,根据字段设置来定,如果字段可以为空,则这个字段可以不赋值。


删除数据


删除数据使用delete()进行删除,调用delete()函数前,一定要加筛选条件。


删除指定数据。filter()为筛选条件,类似SQL中where

类.objects.filter(字段1=值, 字段2=值, ...).delete()

删除全部数据。

类.objects.all().delete()


修改数据


更新数据使用update()进行操作,调用update()函数前,需要加筛选条件。


更新指定数据。filter()为筛选条件,类似SQL中where

类.objects.filter(字段1=值, 字段2=值, ...).update(字段1=值, 字段2=值, ...)

更新全部数据。

类.objects.all().update(字段1=值, 字段2=值, ...)


查询数据


查询数据操作是生产环境中最觉的操作;使用all()和filter()实现数据查询,它返回一个数据集。


图片


filter()函数


ORM框架中的filter()函数是用于过滤条件,常用参数如下。


图片



用户管理系统


课堂练习创建用户管理系统,要求实现以下功能。

展示用户列表(list_user)

添加用户(add_user)

删除用户(delete_user)


免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都市金牛区西城国际A座8楼

  • 扫一扫,免费咨询

  • 微信公众号

学一流技术,找高薪工作

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问