Django小贴士:本文基于b站黑马python类整理链接=>黑马程序员Python企业开发项目-手把手从0到1开发《美多商城》1.Django简介1.1MVT模式M拼写为Model,与MVC中的M功能相同,负责与数据库交互,处理数据。V的全拼是View,与MVC中的C具有相同的功能。它接收请求、执行业务处理并返回响应。T的全拼是Template,与MVC中的V功能相同,负责对返回的html进行封装和构造。二、创建Django项目1、创建Django项目django-adminstartprojectname2、创建子应用pythonmanager.pystartappname2.1创建项目2.1.1创建创建项目的命令:django-adminstartprojectprojectname例如:想在桌面的代码目录下创建一个名为bookmanager的项目,执行如下命令:cd~/Desktop/Codedjango-adminstartproject执行完bookmanager后,会出现一个名为bookmanager的新目录,是新建的项目目录。2.1.2工程目录说明查看创建的工程目录,结构如下。与项目同名的目录,这里是bookmanager。settings.py是项目的整体配置文件。urls.py是项目的URL配置文件。wsgi.py是项目的WSGI兼容web服务器入口。manage.py是项目管理文件,通过它管理项目。2.1.3运行开发服务器在开发阶段,为了快速预览开发效果,django提供了纯python编写的轻量级web服务器,仅在开发阶段使用。运行服务器的命令如下:pythonmanage.pyrunserverip:port或者:pythonmanage.pyrunserver可以不写IP和端口,默认IP为127.0.0.1,默认端口为8000。启动后,可以看到如下信息:在浏览器中输入网址“127.0.0.1:8000”可以看到效果。Django默认工作在调试模式。如果添加、修改或删除文件,服务器将自动重启。按ctrl+c停止服务器。2.2创建子应用Django的视图编写是放在子应用中的。2.2.1创建在django中,创建子应用模块目录仍然可以通过命令来操作,即:pythonmanage.pystartapp子应用名称manage.py是上面创建项目时自动生成的管理文件。比如刚才创建的bookmanager项目,如果要创建一个userbook子应用模块,可以执行:cd~/Desktop/code/bookpythonmanage.pystartappbook执行后可以看到有项目目录中的一个附加名称是book的子目录。2.2.2子应用目录说明此时查看项目目录,结构如下:admin.py文件与网站后台管理站点配置相关。apps.py文件用于配置当前子应用的信息。migrations目录用于存放数据库迁移历史文件。models.py文件保存用户的数据库模型类。tests.py文件用于开发测试用例和编写单元测试。views.py文件用于编写Web应用程序视图。2.2.3.注册安装子应用在项目配置文件settings.py中,INSTALLED_APPS项保存了项目中已经注册安装的子应用。初始项目中的INSTALLED_APPS如下:注册安装子应用的方法是在INSTALLED_APPS列表中添加配置信息文件apps.py中的Config类。例如,要将新创建的图书子应用程序添加到项目中,请将“book.apps.BookConfig”添加到INSTALLED_APPS列表中。3、Model3.1使用Django进行数据库开发的技巧:MVT设计模式中的Model是专门负责与数据库进行交互的。对应的(models.py)不需要直接面向数据库编程,因为ORM框架内嵌在Model中。而是定义模型类,通过模型类和对象完成对数据库表的增删改查。ORM框架是将数据库表的行与对应的对象关联起来,相互转换。使数据库的操作面向对象。3.2使用Django进行数据库开发的步骤:定义模型类模型迁移操作数据库3.2.1.定义模型类在models.py中定义模型类,继承自models.Modelfromdjango.dbimportmodels#在这里创建你的模型。#为书籍列表信息准备模型类类BookInfo(models.Model):#创建字段,字段type...name=models.CharField(max_length=10)#准备字符列表信息的模型类classPeopleInfo(models.Model):name=models.CharField(max_length=10)gender=models.BooleanField()#外键约束:角色属于哪本书book=models.ForeignKey(BookInfo,on_delete=models.CASCADE)3.2.2。模型迁移(建表)迁移分两步完成:生成迁移文件:根据模型类pythonmanage.pymakemigrations生成创建表的语句执行迁移:根据生成的语句在数据库中创建表第一步pythonmanage.pymigrate迁移前和迁移后提示:默认使用sqlite3数据库存储数据4.站点管理站点:分为内容发布和公众访问两部分。内容发布部分负责查看、添加、修改和删除数据。Django可以根据定义的模型类自动生成管理模块。使用Django的管理模块需要按照以下步骤进行:本地化管理界面创建管理员注册模型类并发布内容到数据库4.1本地化管理界面本地化是使用本地习惯显示语言和时间。该地区使用简体中文,当地区使用Asia/Shanghai时区,注意这里没有使用北京时区。本地化前和本地化后4.2创建管理员创建管理员命令:pythonmanage.pycreatesuperuser按照提示输入用户名、邮箱和密码,重新设置密码pythonmanager。pychangepassword用户名登录站点:http://127.0.0.1:8000/admin要求服务器处于启动状态,登录站点成功。站点界面没有书籍和人物管理入口,因为没有注册模型类。4.3注册的模型类在应用程序的管理中。在py文件中注册模型类,需要导入模型模块:frombook.modelsimportBookInfo,PeopleInfo注册模型后,模型注册成功后,可以方便快捷的管理数据站点管理界面。4.4发布内容到数据库发布内容后,优化模型类展示#准备图书列表信息的模型类classBookInfo(models.Model):#创建一个字段,字段类型...name=models.CharField(max_length=10)def__str__(self):"""SetthemodelclassasOutputasastring"""returnself.name5.查看和URL站点管理页面准备好了,接下来要做一个页面供公共访问。对于Django的设计框架MVT,用户在URL中请求的是视图,视图接收到请求后进行处理,并将处理结果返回给请求者。使用视图需要两个步骤。定义视图配置URLconf5.1。定义视图视图是一个Python函数,定义在应用程序的views.py中。视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有的请求信息。视图必须返回HttpResponse对象,其中包含返回给请求者的响应信息。需要导入HttpResponse模块:fromdjango.httpimportHttpResponse定义视图函数:ResponsestringOK!客户端配置URLconf搜索视图的过程5.2:请求者在浏览器地址栏中输入URL,向网站请求。网站获取URL信息,然后将准备好的URLconf一一匹配。如果匹配成功,则调用对应的视图。如果所有网址如果没有任何conf匹配成功,将返回404错误。URLconf入口需要两步完成URLconf配置。在项目中定义URLconf。在应用程序中定义URLconf。在应用程序中定义URLconf。URL规则是使用正则表达式定义的。视图是views.py中定义的视图函数。-url匹配过程5.3测试:请求访问http://127.0.0.1:8000/index/5.4摘要视图处理过程如下:使用视图需要两步操作,两步操作为没有特别的顺序。配置urlconf,在application/views.py中定义视图6.模板(理解)6.1模板使用步骤1.创建模板2.设置模板搜索路径3.模板接收视图传入数据4.模板处理数据6.1.1.创建模板在与应用程序相同的目录中创建模板文件夹templates。文件夹名称是固定的。在模板文件夹下,创建一个与应用程序同名的文件夹。例如Book在应用程序的同名文件夹下创建网页模板文件。例如:index.html6.1.2。设置模板搜索路径6.1.3。模板接收视图传入dataView模板load6.1.4。模板处理数据6.1.5。查看模板处理数据实现7.配置和静态文件7.1配置文件7.1.1BASE_DIRBASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))当前项目根目录,Django将相应地定位项目我们也可以使用此参数来构造文件路径。7.1.2DEBUG调试模式,项目创建后初始值为True,即默认工作在调试模式。功能:修改代码文件,程序会自动重启Django程序。当异常发生时,会向前端显示详细的错误跟踪信息。例如,不使用调试模式,只返回服务器错误(500)。注意:在部署线上运行的Django不要以debug模式模式运行,记得修改DEBUG=False和ALLOW_HOSTS。7.1.3.本地语言和时区Django支持本地化,即显示语言和时区支持本地化。本地化是使用当地显示的语言、时间等的习惯。这里的本地化就是汉化。中国大陆使用简体中文,时区使用亚洲/上海时区。请注意,此处未使用北京时区。初始化项目默认语言和时区为英文和UTC标准时区zh-Hans'TIME_ZONE='Asia/Shanghai'7.2静态文件工程中的CSS、图片、js都是静态文件。一般静态文件都放在单独的目录下,方便管理。在html页面中调用时,还需要指定静态文件的路径。Django提供了一种解析和配置静态文件路径的方法。静态文件可以放在项目的根目录下,也可以放在应用程序的目录下。由于项目中常用一些静态文件,建议放在项目的根目录下,方便管理。为了提供静态文件,需要配置两个参数:STATICFILES_DIRS存放查找静态文件的目录STATIC_URL访问静态文件的URL前缀示例1)在项目根目录下创建一个static目录存放静态文件。2)修改bookmanager/settings.py中static文件的两个参数为STATIC_URL='/static/'STATICFILES_DIRS=[os.path.join(BASE_DIR,'static'),]3)此时在static中添加的任何所有的静态文件都可以使用static中的URL/static/file的路径来访问。比如我们在static目录下添加一个index.html文件,我们可以在浏览器中使用127.0.0.1:8000/static/index.html访问。或者我们在static目录下添加一个子目录和文件book/detail.html,在浏览器中使用127.0.0.1:8000/static/book/detail.html即可访问。7.3App应用配置每个应用目录包含一个apps.py文件,用于保存应用的相关信息。在创建应用的时候,Django会写一个应用的配置类到apps.py文件中,比如fromdjango.appsimportAppConfigclassBookConfig(AppConfig):name='book'我们将这个类添加到项目的settings.py中的INSTALLED_APPS列表中,表示注册并安装了具有该配置属性的应用。AppConfig.name属性表示这个配置类被加载到哪个应用程序中。每个配置类都必须包含这个属性,默认自动生成。AppConfig.verbose_name属性用于设置应用程序的直观易读的名称,该名称将显示在Django提供的Admin管理站点中,如fromdjango.appsimportAppConfigclassUsersConfig(AppConfig):name='book'verbose_name='bookManagement'总结以上是Django的第一部分,后面会继续更新。欢迎大家点赞关注~~
