07web全栈开发阶段django框架git管理redis数据库天天生鲜项目1114代码v31day_第1页
07web全栈开发阶段django框架git管理redis数据库天天生鲜项目1114代码v31day_第2页
07web全栈开发阶段django框架git管理redis数据库天天生鲜项目1114代码v31day_第3页
07web全栈开发阶段django框架git管理redis数据库天天生鲜项目1114代码v31day_第4页
07web全栈开发阶段django框架git管理redis数据库天天生鲜项目1114代码v31day_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MVC施乐公司帕罗奥多smalltalk语言simulaMVC的产生理念:分工MVC的思想:解耦。通过浏览器用户信息。M:Model,模型,V:View,视图,C:Controller,Django内容。PythonDRYDonotrepeatyourselfV:View,视图,T:Temte,模板之前安装python包令:sudopip3install包名虚拟环境是真实python环境的版本安装虚拟环境令sudopipinstallvirtualenvsudopipinstallvirtualenvwrapper#安装虚拟环境扩展包 下面的.bashrc文件,添加下面两行。exportWORKON_HOME=$HOME/.virtualenvssource/usr/local/bin/virtualenvwrapper.sh4)source.bashrcmkvirtualenv虚拟环境名创建python3虚拟环境:mkvirtualenv-ppython3workon虚拟环境名workon空格+两个tabrmvirtualenv虚拟环境名虚拟环境下安装包令:pipinstall包名注意:不能使用sudopipinstall包名,这个命令会把包安装到真实的主机环境apt-getinstall软件pipinstallpython安装django环境:pipinstallpythonpiplistpipze命令:o-admintpt项目名注意:创建应用必须先进入虚拟环境。项目 如下:init.py:说明test1python创建应用令如下:pythonmanage.pystartapp应用名 init.py:建立应用和项目之间的联系,需要对应用进行。修改settings.py中的INSTALLED_APPS配置项。webpythonmanage.pydjangoORMORMORMmodels.pymodels.ModelBookInfo设计fo类Models.ForeignKeydjango命令:pythonmanage.py命令:pythonmange.py进入项目s pythonmanage.pys以下为在相互s终端中演示的例子frombooktest.modelsimportBookInfo,booktest_bookinfob=BookInfo()#定义一个BookInfo类的对象b.btitle=''#定义b对象的属性并赋值b.bpub_date=date(1990,10,11)b.save()booktest_bookinfoid1b=在上一步的基础上改变b对应的日期b.bpub_date=date(1989,10,21)b.save()紧接上一步,删除b对应的的数据b.delete()向booktest_fo表中插入一条数据h h.hname=''h.hgender=Falsementb2=h.hbook= 对象所属 对查询表里面的所有内容查询出id为2的中所有人物的信息b=b.fo_set.all()#查询出b中所有人物的信settings.py命令:pythonmanage.pycreatesuperuser 在应用下的admin.py中模型类告诉djang框架根据的模型类来生成对应表管理页面b=BookInfo()str(b)str django在Djangoviews.pydefindex(request):return o视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象,opython就是返回给浏览器显示的内容urlurl配置的目的是让建立url和视图函数的对应关系。url配置项定义在urlpatternsurlurlurlurl(正则表达式,includeurlsurl和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。url在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写url当用户输入如时,去除和最前面的/,剩下aindexurls配成功之后执行视图函数index,index视图函数返回内容opython给浏览器html去模 下面获取html文件的内容,得到一个模板对象html模板变量使用:{{模板变量名}}for循环:{%foriinlist{%endfor设计出页面的url和对应的视图函数的名字,确定视图函数的功能1)完成信息的展示:设计url通过浏览器时显示信urlshow_books查询出所有的信息,将这些信息传递给模板文件show_books.html。遍历显示出每一本的信息。2)完成点击某本时,显示出里所有信息的页面设计url,通过数字/时显示对应的信息这里数字指点击的的id。b)detail接收的id,根据id查询出相应的信息然后查询出中的所有信息。detail.htmlDjangoM(Map)->映射。ORMmysqlmysqlmysql–uroot–p查看有哪些数据库:show创建数据库:createdatabasetest2charset=utf8#切记:指定编码使用数据库:usetest2;查看数据库中的表:showtables;Django配置使用mysql数据库:settings.py中的DATABASES。注意:django框架不会自动帮我们生成mysql数据库,所以我们需要自己去创mysql安装mysqlPython包:pipinstallmysql-pipinstalltest1/init.pyimportpymysql设计BookInfo,增加属性bread和bcomment,另外设置软删除标记属性设 fo类,增加软删除标记属性isDelete1URLurl。1)信息展示页设计url,通过浏览器时显示信urlindex查询出所有的信息,将这些信息传递给模板文件index.html遍历显示出每一本的信息并增加新建和删除超2)信息新增a)设计url,通过浏览器时向数据库中新增一条信息。b)设计urlcreate。3)信息删除。a)设计url,通过浏览器数字/删除数据库中对应的一条数据。数字是点击的的idb)设计urldeletepythondjangodjango.db.modelsAutoField:自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性。BooleanField:TrueFalseNullBooleanField:Null、True、False参数max_length表示最大字符个数。TextField:4000DecimalField(max_digits=None,decimal_ces=None):十进制浮点数。参数max_digits表示总位数。参数decimal_ces表示小数位数DateField:[auto_now=False,auto_now_add=False]后一次修改"的时间戳,它总是使用当前日期,默认为false。auto_now_add建的时间戳,它总是使用当前日期,默认为false。auto_now_addauto_nowTimeField:时间,参数同DateField。DateTimeField:DateField。ImageField:继承于FileField,对上传的内容进行校验,确保是有效的null:TrueFalseblank:如果为True,则该字段允许为空白,默认值是False。对比:null,blankdb_index:True,False般作为AutoField的选项使用。unique:True,Falsemysqlsudovi f6869sudoservicemysqlrestart重启mysql/var/log/mysql/mysql.log#mysqlsudotailf/var/log/mysql/mysql.logmysql例:查询id为3的信息all():返回模型类对应表格中的所有数据。QuerySet例:查询所有信息模型类属性名查询评论量为34的的信息判等exact例:查询编号为1的。BookInfo.objects.get(idexact=1)例:查询书名包含'传'的。containsBookInfo.objects.filter(btitlecontains='传') endswith开头BookInfo.objects.filter(btitleendswith=空查询isnullselect*frombooktest_bookinfowheretitleisnot例:查询书名不为空的。isnullBookInfo.objects.filter(btitleisnull=False)范围查询inselect*frombooktest_bookinfowhereidin例:查询编号为1或3或5的BookInfo.objects.filter(idin=例:查询编号大于3的。gt(greatethan)lt(lessthan)小于gte(equal)lteBookInfo.objects.filter(idgt=3)例:查询1980年的。BookInfo.objects.filter(bpub_dateyear=1980)例:查询1980年1月1日后的。fromdatetimeimportdateBookInfo.objects.filter(bpub_dategt=例:查询id不为3的信息。Ffromdjango.db.modelsimport例:查询阅读量大于评论量信息。BookInfo.objects.filter(breadgt=F('bcomment'))例:查询阅读量大于2倍评论量信息。BookInfo.objects.filter(breadgtF('bcomment')*2)Q作用:用于查询时的逻辑条件。notandorQ&|~fromdjango.db.modelsimport例:查询id大于3且阅读量大于30的的信息。BookInfo.objects.filter(idgt=3,breadgt=30)BookInfo.objects.filter(Q(idgt=3)&Q(breadgt=30))例:查询id大于3或者阅读量大于30的的信息。BookInfo.objects.filter(Q(idgt=3)|Q(breadgt=30))例:查询id不等于3的信息。order_byQuerySet作用:例:查询所有的信息,按照id从小到大进行排序。例:查询所有的信息,按照id从大到小进行排序例:把id大于3的信息按阅读量从大到小排序显示BookInfo.objects.filter(idgt=3).order_by('-作用:sumcountmaxminavgaggregate:调用这个函数来使用聚合。返回值是一个字典fromdjango.db.modelsimportSum,Count,Max,Min,Avg例:查询所有的数目。Count{'idcount':例:查询所有阅读量的总和{'breadsum':count函数返回值是一个数字例:统计所有的数目。例:统计id大于3的所有的数目。BookInfo.objects.filter(idgt=3).count()all:QuerySet返回所有数据filter:QuerySet返回满足条件的数据exclude:QuerySet返回不满条件的数据order_by:QuerySet对查询结果进行排序aggregate:字典进行聚合操作count:get,filter,excludeall,filterexclude,order_by如果b[0]不存在,会抛出IndexError异常,如果b[0:1].get()不存在,会抛出DoesNotExist异常。多条时抛MultiObjectsReturned对一个查询集进行切片操作会产生一个新的查询集exists:判断一个查询集中是否有数据。True例:类-models.ForeignKey()定义在多的类中。例:类-类型类体育国models.ManyToManyField(例:查询id为1的所有的信息。book=BookInfo.obj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论