收藏 分销(赏)

Python第八章.ppt

上传人:快乐****生活 文档编号:10252421 上传时间:2025-04-30 格式:PPT 页数:96 大小:991KB 下载积分:18 金币
下载 相关 举报
Python第八章.ppt_第1页
第1页 / 共96页
Python第八章.ppt_第2页
第2页 / 共96页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,理论学习 案例学习 学习活动 学习评测 参考资料,1,第8章 python网站开发,2,本章重点难点,本章重点,MVC,模式的概念及相关术语,Django,框架的模式,Django,环境的搭建与数据库的配置,Django,框架的应用,本章难点,MVC,模式的概念,Django,环境的搭建,Django,框架的应用,3,8.1,常见的,Web,开发框架,8.1.1 Zope,框架,Zope,是免费的,可以在开放源代码许可证条件下自由分发。,Zope,是一套完整的平台,它包含了开发应用程序所需的全部组件。,允许第三方开发者打包和分发应用程序。,允许开发者只使用浏览器就可以创建,Web,应用程序。,提供多种可扩展的安全框架,可以运行在大多数计算机操作系统平台中。,8.1.2 TurboGears,框架,不用安装,Apache,网页服务器就可以开始开发网页应用程序。,不用安装数据库,MySQL/PostgreSQL,就可以开发数据库网站。,方便的布署能力,有众多插件,(Extension),支援。,内建网页服务器,,ORM,、,AJAX,能力,默认可以产生,html,、,json格式,。,可扩充的网页接口的工具箱(,ToolBox,),内含资料模型设计工具(,Model Designer,),资料编辑工具,(Catwalk),,网站多国语言化工具等。,4,8.1.3 Django,框架,1.Django,的历史,2003,开始时,由,Adrian Holovaty,和,Simon Willison,将其作为劳伦斯杂志,-,世界报纸的一个内部项目。,2005,将其命名为,Django,发布于,2005,年,7,月。,2008,年,9,月发布了第一个正式版本,1.0,。当前,,Django,是由世界各地的贡献者来开发的一个开源项目。,2.Django,的设计理念,(1),松耦合:,Django,的目的是使其堆栈中的每个元素独立于其他。,(2),较少编码:较少代码,所以能迅速的开发。,5,(3),不必再重复,(DRY),:一切都应只在一个地方,而不是一次又一次地重复来开发它。,(4),更快的开发:,Django,的理念是尽一切所能,便于超高速开发。,(5),干净的设计:,Django,严格维护一个干净的设计在其自己的代码,并可以很容易地遵循最佳,Web,开发实践。,3.Django,的优势,(1),对象关系映射,(ORM),支持:,Django,提供数据模型和数据库引擎之间的桥梁,并支持大量的数据库系统,包括,MySQL,、,Oracle,、,Postgres,等等。在,Django,中还支持通过,Django-nonrel,支持,NoSQL,数据库。,(2),多种语言支持:,Django,通过其内置的国际化系统支持多语种网站。,6,(3),框架支持:,Django,内置了对,Ajax,、,RSS,、缓存和其他各种框架的支持。,(4),管理,GUI,:,Django,提供用于管理活动的一个很好的用户界面。,(5),开发环境:,Django,自带了一个轻量级的,Web,服务器,方便终端到终端应用的开发和测试。,7,8.2 MVC,模式,MVC,是三个单词的缩写,分别为:模型(,Model,)、,视图,(,View,)和控制(,Controller,)。,MVC,模式的目的就是实现,Web,系统的职能分工。,1.,视图,视图是用户看到并与之交互的界面。对老式的,Web,应用程序来说,视图就是由,HTML,元素组成的界面。在新式的,Web,应用程序中,它还包括,Macromedia Flash,和,XHTML,,,XML/XSL,,,WML,等一些标识语言和,Web services,。,2.,模型,模型表示企业数据和业务规则。在,MVC,的三个部件中,模型拥有最多的处理任务。例如它可能用象,EJBs,和,ColdFusion Components,这样的构件,对象,来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。,3.,控制器,控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击,Web,页面中的超链接和发送,HTML表单,时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。,8.2.2 MVC,模式的优缺点,1.,低耦合性,视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动,MVC,的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。,2.,高重用性和可适用性,随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。,MVC,模式允许使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何,WEB,(,HTTP,)浏览器或者无线浏览器,(WAP),,比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用,HTML,来表示,也有可能用,WAP,来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。,3.,较低的生命周期成本,MVC,使开发和维护用户接口的技术含量降低成为可能。,4.,快速的部署,使用,MVC,模式使开发时间得到相当大的缩减,它使程序员集中精力于业务逻辑,界面程序员(,HTML,和,JSP,开发人员)集中精力于表现形式上。,5.,可维护性,分离视图层和业务逻辑层也使得,WEB,应用更易于维护和修改。,6.,有利于软件工程化管理,由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。,MVC,模式的缺点体现在以下几个方面:,(1),增加了系统结构和实现的复杂性:对于简单的界面,严格遵循,MVC,,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。,(2),视图与控制器间的过于紧密的连接:视图与控制器是相互分离又紧密联系的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样妨碍了他们的独立重用。,(3),视图对模型数据的低效率访问:依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。,8.2.3 Django,框架中的,MVC,Django,紧紧地遵循,MVC,模式,是一种,MVC,框架。以下是,Django,中,M,、,V,、,C,各自的含义:,M,:数据存取部分,由,django,数据库层处理。,V,:选择显示哪些数据要显示以及怎样显示的部分,由视图和模板处理。,C,:根据用户输入委派视图的部分,由,Django,框架根据,URLconf,设置,对给定,URL,调用适当的,Python,函数。,由于在,Django,中,控制器接受用户输入的部分由框架自行处理,而,Django,更关注的是模型(,Model,)、模板,(Template),和视图(,Views,),,Django,也被称为,MTV,框架。在,MTV,开发模式中:,M,:代表模型(,Model,),即数据存取层。该层处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。,T,:代表模板,(Template),,即表现层。该层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。,V,:代表视图(,View,),即业务逻辑层。该层包含存取模型及调取恰当模板的相关逻辑。可以把它看作模型与模板之间的桥梁。如,图8-2,所示。,需要注意的是,不能简单的把,Django,视图认为是,MVC,控制器,把,Django,模板认为,MVC,视图。区别在于:,Django,视图不处理用户输入,而仅仅决定要展现哪些数据给用户;,Django,模板仅仅决定如何展现,Django,视图指定的数据。可以认为,Django,将,MVC,中的视图进一步分解为,Django,视图和,Django,模板两个部分,分别决定,“,展现哪些数据,”,和,“,如何展现,”,。,MVC,控制器部分,由,Django,框架的,URLconf,来实现。,URLconf,设计非常巧妙,其机制是使用正则表达式匹配,URL,,然后调用合适的,Python,函数。,8.3 Django,开发环境的搭建,8.3.1 Django,框架的安装,1.,安装,Python,Django,是用,100%,纯,Python,代码编写,所以需要在系统上安装,Python,。,Django1.9,的版本需要,2.7.3,或高于,2.7.x,的版本,本教程中使用的是,Python3.4,和,Django-1.9.1,。,Django,与,Python,版本对应关系如表,8-1,所示。,2.,安装,Django,Python,是一种与平台无关的语言,,Django,是一个,Python Web,框架,与操作系统无关。所以,,Django,的安装是很容易的,但安装步骤取决于所在的操作系统。,UNIX/Linux,和,Mac OS X,安装,如果计算机上运行的是,Linux,或,Mac OS,系统,那么可以有两种方式来安装,Django,:对于可以使用包管理器的操作系统,可以使用,easy_install,或,pip,安装;或者手动安装下载的官方压缩包。,例如:手动下载了类似这样,Djangox.xx.tar.gz,压缩包,其安装命令如下:,$tar xzvf Django-x.xx.tar.gz,$cd Django-x.xx,$sudo python setup.py install,安装后,可以通过运行下面的命令来测试安装是否成功。,$django-admin.py-version,如果看到打印在屏幕上的当前,Django,版本,那么说明一切都设置好了。,Windows,安装,在,Windows,系统下,首先在,Django,官网上下载,Django-1.9.1.zip,,解压缩该文件。然后在解压文件夹下输入以下命令来完成,Django 1.9,的安装。,命令格式如下:,python setup.py install,Django,完成安装后,显示,Finished processing dependencies for Django1.9.1,,标志着,Django,的安装完毕。结果如图,8-3,所示。,图,8-3 Django,安装成功,图,8-4 Django,安装测试,测试,Django,是否安装成功,可以打开,Python Shell,(,IDLE(Python GUI),),,Python Shell,交互以,“”,开始,使用下边的命令来查看,Django 1.9,安装是否成功。如图,8-4,显示。,Django,框架安装到,python,文件夹下的,site-packages,文件夹中。,3.,数据库和,Web,服务器安装,(1),数据库安装,Django,支持几种主要的数据库引擎,用户可以根据需要,选择安装相应的数据库。,MySQL(www.postgresql.org/),SQLite 3(www.sqlite.org/),Oracle(https:/django-mongodb-engine.readthedocs.org),其中,SQLite3,数据库已经集成在,Python3.4,中了,该数据库不需要安装,可以直接使用。本书中使用,Mysql,数据库进行,Web,的开发。,(2)Web,服务器安装,Django,自带了一个轻量级的,Web,服务器,可用于开发和测试应用程序。但该服务器仅用于应用程序测试,不能发布,Web,应用程序。,Django,支持,Apache,和其他流行的,Web,服务器,要发布开发的网站,需要使用,Apache,服务器。安装,Apache,服务器后,要使,Apache,支持,Python,,需要模块,mod_wsgi,的支持,该模块可以从,mod_wsgi,官网,https:/pypi.python.org/pypi/mod_wsgi/,下载。,(3)Wamp,集成环境的安装,数据库和,Web,服务器的安装,也可以使用现有的集成开发环境,例如:,wamp,、,xampp,等,这些集成开发环境中包含,Apache,服务软件、,Mysql,数据库软件等。本书中采用的是集成开发环境,PyCharm,、数据库采用,Mysql,。,8.3.2 Django,简单应用,例,8-1,】编写一个简单的网页,显示,“,当前时间,”,及,“,大家好,!,,欢迎使用,Python”,(1),打开,PyCharm,,新建一个,django,的项目,文件的位置可以随意。这里命名为,mysite,,输入项目的应用名:,mysiteapp,,创建一个,Django,项目。如图,8-5,所示。,图,8-5,创建,Django,项目,图,8-6 Django,项目文件结构,图,8-7,启动自带的测试服务器,(2),验证项目是否正常,进入项目,mysite,文件夹,启动,Django,自带的测试服务器。启动服务器命令:,Python manage.py runserver,或在,PyCharm,集成环境中加载并运行,manage.py,文件:按下,Ctrl+Alt+R,,在弹出的消息框中输入任务名称:,runserver,回车。,服务器启动成功后,如果要退出服务,在上图所示窗口中按,Ctrl-Break,键可退出服务;如果要查看服务器运行情况,在浏览器中访问:,127.0.0.1:8000,,如图,8-8,所示。在浏览器中显示,It worked,!时,说明,Django,开发环境搭建成功了。,图,8-8,访问测试服务器,(3),安装应用:打开,setting.py,文件,将建立的应用添加到,INSTALLED_APPS,变量中,代码如下:,INSTALLED_APPS=,django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,mysiteapp#,添加应用,(4),打开,mysiteapp,文件夹下的,views.py,import datetime,import django.http.HttpResponse,def sayHello(request):,s=,大家好,!,,欢迎使用,Python,current_time=datetime.datetime.now(),html=%s%s,%(s,current_time),return django.http.HttpResponse(html),(5),修改项目文件夹里的,urls.py,文件,将,url(rsayhello/$,sayhello),映射添加到,urlpatterns,中,from django.conf.urls import url,from django.contrib import admin,from mysiteapp.views import sayHello#,导入,sayHello(),函数,urlpatterns=,url(radmin/,admin.site.urls),url(rsayhello/$,sayHello),#,加入映射,图,8-9,页面运行结果,重新启动项目,在浏览器中输入,127.0.0.1:8000/sayhello,就会看到如图,8-9,所示的结果。,8.4Django,框架的应用,8.4.1,数据库的配置,1.Django,数据库配置基础,在创建了,Django,项目后,在项目的文件夹中有,settings.py,文件,该文件是一个有关,Django,项目配置的文件,包含了代表,Django,设置的模块级变量。,Django,数据库配置就是通过修改,settings.py,文件中,DATABASES,变量的设置实现的。,根据,Python,版本的不同选择不同的适配器。,Settings.py,文件中的,DATABASES,模块级变量的设置,如下面代码所示,。,DATABASES=,default:,ENGINE:django.db.backends.mysql,#,数据库引擎,NAME:student,#,数据库名称,.,USER:root,#,数据库用户名,PASSWORD:123456,#,数据库密码,HOST:127.0.0.1,#,数据库主机,留空默认为,localhost,PORT:3306,#,数据库端口,说明:,(1)ENGINE,:数据库引擎,即数据库服务器,其设置的值可以是:,django.db.backends.postgresql,,对应,PostgreSQL,数据库。,django.db.backends.postgresql_psycopg2,,对应,PostgreSQL,数据库。,django.db.backends.mysql,,对应,MySQL,数据库。,django.db.backends.sqlite3,,对应,SQLite,数据库。,django.db.backends.oracle,,对应,Oracle,数据库。,(2)NAME,:数据库名称。如果使用,MySQL,数据库,则其值为数据库的名字;如果使用,SQLite,,数据库为计算机上的一个文件,,NAME,将是数据库文件的完整的绝对路径。如果该文件不存在,它会在第一次同步数据库时自动创建。,当指定路径时使用正斜杠,例如:,”C:/homes/user/mysite/sqlite3.db”,(3)USER,:数据库用户名,即告诉,django,用哪个用户连接数据库,(SQLite,下不需要该项设置,),。,(4)PASSWORD,:数据库密码,即告诉,django,连接用户的密码,(SQLite,下不需要该项设置,),。,(5)HOST,:数据库主机地址,即告诉,django,连接哪一台主机的数据库服务器。如果数据库服务器是同一台物理机器,此处为空,(,或为,127.0.0.1)(SQLite,下不需要该项设置,),。,(6)PORT,:数据库服务器端口,即告诉,django,连接数据库时使用哪个端口(,SQLite,下不需要该项设置)。,2.Django,中,sqlite3,数据库的配置,默认使用,sqlite3,数据库,其在,settings.py,文件中关于数据库的初始配置如下面代码所示。,DATABASES=,default:,ENGINE:django.db.backends.sqlite3,NAME:os.path.join(BASE_DIR,db.sqlite3),3.Django,使用,Mysql,数据库,(1)Python,连接,mysql,数据库的常用驱动程序,常用驱动程序:,MySQLdb(mysql-python),:,。,特点:只支持到,python2,对,Python3,支持不好。,网址:,https:/pypi.python.org/pypi/MySQL-python/1.2.5,Mysqlclient,:,特点:,MySQLdb,的一个分支,它支持,Python3,。,网址:,https:/pypi.python.org/pypi/mysqlclient,PyMySQL,:,特点:纯,python,的,mysql,驱动。,网址:,https:/pypi.python.org/pypi/PyMySQL,。,MySQL connector for python,:,特点:纯,Python,的,mysql,驱动。,网址:,install pymysql,配置数据库,在,django,项目中的,settings.py,配置文件中修改,DATABASES,的设置。见,8.3.2,。,修改,_init_.py,文件,在项目同名文件夹下的,_init _.py,中,加入如下代码,才能应用安装的,mysql,驱动,否则会报错。在文件中加入的代码如下:,import pymysql,pymysql.install_as_MySQLdb(),8.4.2,创建数据模型,1.ORM(Object Relational Mapping),对象关系映射,ORM,是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。,Django,的,ORM,位于框架的中心,介于数据模型(在,django.db.models.Model,类之上构建的,Python,类)和基础关系数据库对象之间。,2.,常用的模型数据类型,Django 常用的数据模型字段,见表,8-3,。,表,8-3 Django,常用的数据模型字段类型,3.,创建数据模型,【例,8-2,】创建一个,Django,数据模型,并生成数据库表。,打开,mysite,文件夹中的,models.py,文件,在文件中创建如下代码:,From Django.db import models,#,创建模型,class Users(models.Model):,username=models.CharField(max_length=64),password=models.CharField(max_length=64),registTime=models.DateTimeField(),tel=models.CharField(max_length=11),4.,加入到站点管理,打开,admin.py,文件,将模块引入到站点管理中,语句如下,from django.contrib import admin,from.import models,admin.site.register(models.Users),5.,同步数据库,执行语句:,pythonmanage.pymakemigrations,pythonmanage.pymigrate,执行完成后将在,MySql,数据库中创建,mysiteapp_users,表(,APP,名,_,类名)。,说明:,(1),由于版本不同,有的同步命令语句使用,“python manage.py syncdb”,语句。,(2)Django,为每张表自动添加一个,id,主键。,(3)Django,中通过,“manage.py inspectdb”,可以将已有的数据库表生成数据模型。例如:,python manage.py inspectdb models.py,6.,数据访问,创建了模型以后,,Django,自动为这些模型提供了高级的,Python API,,可以轻松访问数据库表。,【例,8-3,】针对上面的数据模型,插入一条数据,并查看。,运行结果如下:,该运行结果并未将记录的详细信息显示出来,为了解决这个问题,需要为,Users,类添加一个方法,_unicode_(),。,_unicode_(),方法将告诉,Python,如何将对象以,unicode,的方式显示出来。代码如下:,def _unicode_(self):,return u%s%s%s%(self.username,self.password,self.tel),为以上模型添加,_unicode_(),方法后,重新运行,pythonmanage.pyshell,,即可以看到所需的数据。,8.4.3,创建视图,视图功能简称,“view”,,是一系列的,Python,函数,它接受一个,Web,请求,并返回一个,Web,响应。,1.,视图函数的编写,视图要和,url,路由、,models,、模板文件一起才能把页面显示出来。视图函数在视图文件,views.py,中,建立视图函数代码如下:,from django.shortcuts import render,#,创建视图,Def index(request):,Return render(request,index.html),视图还可以接受的参数。,from django.http import HttpResponse,例如:,def hello(request,number):,text=welcome to my app number%s!%number,return HttpResponse(text),2.request,对象,request,是一个,HttpRequest,对象。每一个视图总是以一个,HttpRequest,对象作为它的第一个参数。,Request,常用的属性包括:,Path,:请求页面的全路径,不包括域名。,Method,:请求中使用的,HTTP,方法的字符串表示,全大写表示。,GET,:包含所有,HTTP GET,参数的类字典对象。,POST,:包含所有,HTTP POST,参数的类字典对象。,3.response,对象,request,和,response,对象起到了服务器与客户机之间的信息传递作用。,request,对象用于接收客户端浏览器提交的数据,而,response,对象的功能则是将服务器端的数据发送到客户端浏览器。,HttpRequest,对象由,django,自动创建,但是,,HttpResponse,对象就必须自己创建。,每个,view,请求处理方法必须返回一个,HttpResponse,对象,,HttpResponse,类在,django.http,模块中。,HttpResponse,对象上扩展的常用方法包括:,Render():,页面渲染。,Redirect(”,路径,”):,登录跳转。,Locals(),:可以直接将函数中所有的变量传给模板。,【例,8-4,】在例,8-3,的基础上创建视图。,8.4.4,模板系统,Django,模板是一个文本文件,主要用于分割文档的表示,(presentation),和数据。模板中定义了占位符,(placeholders),和各种定义文档应该如何显示的基本逻辑(即模板标签,,template tag,)。,1.,模板目录设置,在配置文件,settings.py,中,通过,TEMPLATES_DIRS,属性设置模板目录。,TEMPLATES_DIRS=(,./templates,),2.Django,模板语言,Django,模板引擎提供了一个小型的语言来定义应用程序面向用户的层。,(,1,),显示变量,语法格式:,variable,表示给定变量的值插入到模板中。,例如:,username,,模板由视图在渲染,(render),函数的第三个参数发送的变量来替换变量。,(2),过滤器,语法格式:,var|filters,模板过滤器将变量在显示前转换它们的值的方式。,例如:,string|truncatewords:80,过滤器将截断字符串,只看到前,80,个字符。,string|lower,转换字符为小写。,string|escape|linebreaks,转义字符串内容,然后换行转换为标签。,(3),标签,用,%,包围的是块标签。标签可以执行以下操作:,if,条件,,for,循环,模板继承等。,if,标签,表现为逻辑的,if,语句。就像在,Python,中,可以使用,if,,,else,和,elif,在模板中,8.4.5 URL,配置,在,Django,框架中,,urls.py,的配置很关键,它就像是,Django,所支撑网站的目录,本质是,URL,模式以及要为该,URL,模式调用的视图函数之间的映射表。通过该文件告诉,Django,,哪个,URL,调用哪段代码,URl,格式为:,urlpatterns=,url(,正则表达式,view,函数,参数,别名,前缀,),例如上例中的,url(rshowuser/$,showuser),语句。,表示在地址栏中输入:,localhost:8000/showuser,时,就访问,mysiteapp,目录下的,views.py,文件中的,showuser(),函数。,8.4.6,发布,Django,项目,发布,Django,项目,就是把应用放到,apache,等,Web,服务器上,供用户浏览使用。,Django,框架包含了一个开发服务器,用它调试和测试,Django,应用程序非常方便。但这个服务器只能在本地环境中运行,不能用于网站的发布。因此,需要将,Django,应用程序部署到常用的,Web,服务器上,比如,Apache,或,lighttpd,。项目的发布步骤如下:,(1),安装,apache2,下载集成服务器软件,wamp2.5,,按安装向导安装即可。安装完成后,设置,mysql,数据的登录密码。,(2),安装,mod_wsgi,WSGI,,全称,Web Server Gateway Interface,,或者,Python Web Server Gateway Interface,,是,Python,专有的,定义了,Python,解释器与,Web,服务器之间的一种简单而通用的接口。,根据,apache2.5,服务器与,python,版本,下载符合两者版本对应关系的,mod_wsgi,模块。将下载的,.so,文件重命名为,mod_wsgi.so,,并复制到,apache,的,modules,文件夹中,然后,在,apache,服务器的配置文件,httpd.conf,中加载,mod_wsgi.so,文件。,打开,apache,的配置文件,httpd.conf,,加入如下命令:,#,加载,mod_wsgi.so,模块,LoadModule wsgi_module modules/mod_wsgi.so,重启,apache,,模块,mod_wsgi.so,被加载到服务器中。,(3),发布,django,创建的项目,在,c:wampwww,目录下,创建,django,目录。,复制项目文件夹,(mysite),下的所有内容到,c:wampwwwdjango,目录下。,配置,apache,服务器的,httpd.conf,文件。,打开,apache,的配置文件,httpd.conf,,加入如下命令:,#,指定,django,项目的,wsgi.py,配置文件的路径,WSGIScriptAlias /c:/wamp/www/django/mysite/wsgi.py,#,指定项目路径,WSGIPythonPath c:/wamp/www/django/,#,绝对路径为项目所在目录,Order deny,allow,Allow from all,(4),修改,settings.py,文件,Django,项目创建时,其状态为调试模式,在发布该程序时,应该关闭调试模式。调试模式的设置在,settings.py,文件中,所以,修改该文件关闭调试模式。,打开,settings.py,文件,找到,debug,与,TemplateDebug,设置,把两项的值设置为,False,,即可。,(5),重启,apache,服务器,在浏览器中输入地址,如果成功显示主页,则表示发布成功。,8.5 Django,框架的高级应用,8.5.1,管理界面,1.Django admin,管理工具,Django,提供了基于,web,的管理工具。,Django,自动管理工具是,django.contrib,的一部分。可以通过项目的,settings.py,文件中的,INSTALLED_APPS,的属性设置实现。,settings.py,文件代码:,INSTALLED_APPS=(,django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,),django.contrib,是一套庞大的功能集,它是,Django,基本代码的组成部分。,2.,激活管理工具,通常在生成项目时会在,urls.py,中自动设置好,只需去掉注释即可激活管理工具。,配置项如下所示:,/HelloWorld/HelloWorld/urls.py,文件代码:,#urls.py,from django.conf.urls import url,from django.contrib import admin,urlpatterns=,url(radmin/,admin.site.urls),图,8-11 Django,后台登录界面,当这一切都配置好后,,Django,管理工具就可以运行了。,3.,使用管理工具,启动开发服务器,然后在浏览器中访问,127.0.0.1:8000/admin/,,得到如图,8-11,所示界面:,图,8-12 Django,后台管理界面,用户名和密码可以通过命令,“python manage.py createsuperuser”,来创建超级用户。创建好后,可以在图,8-12,所示页面,输入用户名和密码登录,登录后界面如图,8-12,所示。,为了让,admin,界面管理某个数据模型,需要先注册该数据模型到,admin,。比如,之前在,mysiteapp,中已经创建了模型,Users,。修改,admin.py,文件如下:,from django.contrib import admin,from mysiteapp.models import Users,#Register your models here.,admin.site.register(Users),刷新后即可看到,Users,数据表。如图,8-13,所示。,图,8-13 Users,数据表,8.5.2,编辑数据库,登录管理界面后,在管理界面中,每个数据模型之后都有两个超链接,为,add,和,change,。这是两种不同的操作,实现插入和修改数据库中的数据。,图,8-14,字段编辑界面,1.,使用,Django,框架的管理界面向数据表中插入数据,Django,内置的后台管理界面可以实现向数据表插入数据。,(1),单击,Users,域之后的,“add”,超链接,页面跳转到增加用户界面如图,8-14,所示。,图,8-15,修改记录界面,(2),输入相关信息后,单击,“save and addanother”,按钮。,2.,使用,Django,框架的管理界面对数据表数据进行修改,(1),单击,Users,域之后的,“change”,超链接,页面跳转到如图,8-15,所示。,(2),修改相应的信息后,单击,“save and addanother”,按钮,页面跳转到添加数据界面,并显示前边输入的项目数据修改成功。也可以在此页面中直接删除数据。,3.,使用,Django,框架提供的,dbshell,打开,mysql,,实现数据的显示、添加与删除,(1),打开命令提示符窗口,使用,cd,命令转换到项目所在目录,执行命令:,Python manage.py dbshell,,打开,mysql,提示符界面,如图,8-16,所示。,图,8-16 dbshell,运行窗口,(2),在,mysql,提示符界面,使用,SQL,语句实现数据的显示(,select,)、添加(,insert,)与删除(,delete,)。,SQL,语句的使用可以参见第,6,章。,4.,使用,django,提供的,api,实现数据操作,Django,框架提供了生成数据模型数据的,API,方法,就是直接调用数
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服