Python Web开发项目教程(Django版)(AI助学)课件 项目1-6 认识Django开启Python Web开发之旅 - 项目优化与创建一个新应用_第1页
Python Web开发项目教程(Django版)(AI助学)课件 项目1-6 认识Django开启Python Web开发之旅 - 项目优化与创建一个新应用_第2页
Python Web开发项目教程(Django版)(AI助学)课件 项目1-6 认识Django开启Python Web开发之旅 - 项目优化与创建一个新应用_第3页
Python Web开发项目教程(Django版)(AI助学)课件 项目1-6 认识Django开启Python Web开发之旅 - 项目优化与创建一个新应用_第4页
Python Web开发项目教程(Django版)(AI助学)课件 项目1-6 认识Django开启Python Web开发之旅 - 项目优化与创建一个新应用_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

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

文档简介

项目1

认识Django,开启PythonWeb开发之旅了解Web和Web开发框架的基本概念了解当前主流的PythonWeb开发框架理解Django的MTV设计模式了解Django的发展历程和主要特点项目目标掌握Python和Django的安装流程掌握在本地Web服务器中运行Django项目的基本方法掌握虚拟环境的概念与创建方法掌握使用PyCharm进行Django项目开发的基本流程项目目标任务1.1

Web开发简介1.1.1 Web简介蒂姆·伯纳斯·李1.1.1 Web简介1.1.2 PythonWeb开发框架简介1.1.2 PythonWeb开发框架简介Web框架:用来简化Web开发的软件架构,框架的存在是为了践行DRY(Don’tRepeatYourself)的原则,避免重复劳动,并且在用户创建一个新的网站时帮助减轻些开销。常用的PythonWeb框架:1.Django 4.Tornado2.Flask 5.Web2py3.FastAPI 6.Bottle1.1.3 MTV设计模式1.1.3 MTV设计模式图1-1MTV设计模式交互过程任务1.2

认识、安装、

运行Django1.2.1 Django发展历程1.2.1 Django发展历程2003年秋,Django诞生于美国堪萨斯州TheWorldCompany公司的WorldOnline部门。2005年夏天,Django框架开发完成,此时JacobKaplan-Moss(雅各布•卡普兰•莫斯)加入WorldOnline,致力于推荐Django框架的开源工作。2005年7月,Django框架在BSD开源协议下发布。2008年6月,Django软件基金会成立。2008年9月,第一个Django正式版本Django1.0发布。1.2.1 Django发展历程Django的版本:功能版本:版本号定义为A.B、A.B+1等,大约每8个月发布一次,每个版本均包括新功能以及对现有功能的改进。补丁版本:版本号定义为A.B.C、A.B.C+1等,用来修复bug或者是安全问题,补丁版本是100%兼容相关的功能版本的。LTS版本:即长期支持的版本。1.2.1 Django发展历程图1-2Django版本支持及未来发布计划1.2.1 Django发展历程Django对Python版本的依赖关系表1-1Django对Python版本的依赖关系DjangoversionPythonversions4.23.8,3.9,3.10,3.115.03.10,3.11,3.125.13.10,3.11,3.125.23.10,3.11,3.12,3.131.2.2 Django的特点1.2.2 Django的特点全栈Web框架功能完善、要素齐全完善的文档强大的数据库访问组件灵活的路由系统丰富的Template模板功能健全的后台管理系统Admin完整的错误信息提示国际化支持强大的缓存支持1.2.3 安装Python与包管理工具1.2.3 安装Python与包管理工具图1–3在Windows上安装Python1.2.3 安装Python与包管理工具pip常用的几个基本命令:安装package:pipinstall<package>升级package:pipinstall-U<package>

或者pipinstall--upgrade<package>卸载package:pipuninstall<package>列出已经安装的package:piplist1.2.4 安装Django1.2.4 安装Django安装Django: pipinstallDjango安装成功后显示Django模块命令: python-mdjango升级Django: pipinstall-UDjango图1-4Django模块命令1.2.5 在本地Web服务器中运行Django项目1.2.5 在本地Web服务器中运行Django项目创建Django项目: python-mdjangostartproject<project_name>或者 django-adminstartproject<project_name>具体案例:python-mdjangostartprojectMiniDoubancdMiniDoubanpythonmanage.pyrunserver1.2.5 在本地Web服务器中运行Django项目图1–5Django项目首页1.2.5 在本地Web服务器中运行Django项目更改端口号运行web服务:pythonmanage.pyrunserver8080侦听所有可用的公共IP运行web服务:pythonmanage.pyrunserver0:8080任务1.3

虚拟环境管理1.3.1 虚拟环境的概念与意义1.3.1 虚拟环境的概念与意义概念:一个独立的Python运行环境,其中包含特定版本的Python解释器以及一组安装的库和工具意义:而实现Python环境的隔离避免多个版本的软件之间产生干扰和冲突1.3.2 创建虚拟环境1.3.2 创建虚拟环境创建虚拟环境:python-mvenvMiniDoubanEnv图1-6创建虚拟环境的文件夹1.3.3 激活和使用虚拟环境1.3.3 激活和使用虚拟环境激活虚拟环境:MiniDoubanEnv\Scripts\activate图1-7激活虚拟环境退出虚拟环境:MiniDoubanEnv\Scripts\deactivate任务1.4

安装与使用PyCharm1.4.1 安装PyCharm1.4.1 安装PyCharm图1-8PyCharm安装完成后的启动界面1.4.2 使用PyCharm开发Django项目1.4.2 使用PyCharm开发Django项目图1-9

PyCharm“设置”对话框1.4.2 使用Pycharm社区版开发Django项目图1-10打开已创建的MiniDouban项目1.4.3配置PyCharm开发环境1.4.3 配置PyCharm开发环境图1-11Python解释器设置对话框1.4.3 配置PyCharm开发环境图1-12“添加Python解释器”对话框1.4.3 配置PyCharm开发环境图1-13显示命令行终端的PyCharm主界面项目2

认识Django项目结构与创建Django应用掌握Django项目的目录结构了解Django项目目录结构中不同文件的作用了解Django项目的配置文件学会使用Django项目配置文件进行简单配置学习目标掌握在Django项目中创建应用的方法任务2.1

Django项目结构简介2.1.1 Django项目目录结构过渡页2.1.1 Django项目目录结构图2-1MiniDouban的目录结构2.1.2 settings.py文件解析过渡页Django项目的配置信息存储在配置文件settings.py中,这个文件本质上是一个Python模块,其中包含一些模块级别的变量,配置该文件时需要注意以下几项:不允许出现Python语法错误。可以用Python语法实现动态配置。可以从其他配置文件中引入变量。2.1.2 settings.py文件解析2.1.2 settings.py文件解析常用和比较重要的几个属性1.

BASE_DIR2.SECRET_KEY3.

DEBUG4.INSTALLED_APPS5.MIDDLEWARE6.ROOT_URLCONF7.TEMPLATES8.LANGUAGE_CODE9.TIME_ZONE10.USE_TZ2.1.3 语言环境和时区设置过渡页语言环境设置LANGUAGE_CODE='zh-Hans'2.1.3 语言环境和时区设置TIME_ZONE='Asia/Shanghai'USE_TZ=False时区设置图2-2修改默认语言为中文简体后的Django欢迎页任务2.2

在Django项目中创建和配置应用2.2.1 创建应用过渡页2.2.1 *创建应用图2-3豆瓣首页2.2.1 创建应用图2-4movie应用目录结构创建新应用pythonmanage.pystartappmovie2.2.2 配置应用过渡页2.2.2 配置应用添加应用名称INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','movie',]终端提示"Youhave18unappliedmigration(s).Yourprojectmaynotworkproperlyuntilyouapplythemigrationsforapp(s):admin,auth,contenttypes,sessions.Run'pythonmanage.pymigrate'toapplythem."项目3

初识Django路由系统了解Django路由系统理解通过URL调用视图函数的原理掌握通过URL访问已创建页面的方法学习目标任务3.1

Django路由系统简介根路由文件urls.py初始代码:fromdjango.contribimportadminfromdjango.urlsimportpathurlpatterns=[ path('admin/',admin.site.urls),]任务3.1Django路由系统简介任务3.1Django路由系统简介图3-1DjangoAdmin管理页面任务3.2

为应用与项目首页创建自定义访问路径3.2.1 为movie应用首页创建自定义路径过渡页将以下粗体代码配置在urls.py中:fromdjango.contribimportadminfromdjango.urlsimportpathfrommovieimportviewsurlpatterns=[ path('admin/',admin.site.urls), path('moviehome',views.moviehome),]3.2.1 为movie应用首页创建自定义路径将以下粗体代码配置在/movie/views.py中:fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsedefmoviehome(request): returnHttpResponse('<h1>欢迎来到movie应用首页</h1>')3.2.1 为movie应用首页创建自定义路径3.2.1 为movie应用首页创建自定义路径图3-2movie应用首页3.2.2 为项目首页创建自定义路径过渡页将以下粗体代码配置在urls.py中:…urlpatterns=[path('admin/',admin.site.urls),path('moviehome',views.moviehome),path('',views.home),]3.2.2 为项目首页创建自定义路径将以下粗体代码配置在/movie/views.py中:defmoviehome(request):returnHttpResponse('<h1>欢迎来到movie应用首页</h1>')defhome(request): returnHttpResponse('<h1>欢迎来到项目首页</h1>')3.2.2 为项目首页创建自定义路径图3-3项目首页3.2.2 为项目首页创建自定义路径项目4

初识Django模板掌握如何向模板传递数据掌握如何将Bootstrap添加到网站中掌握如何添加搜索框学习目标理解Django模板掌握如何将搜索数据发送到另一个页面任务4.1

创建与应用Django模板4.1.1 配置Django模板过渡页4.1.1 配置Django模板图4-1带templates模板文件夹的movie应用目录结构4.1.1 配置Django模板将以下粗体代码配置在/movie/views.py中:fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsedefmoviehome(request): returnrender(request,'moviehome.html')在/movie/templates/中创建一个新文件moviehome.html:<!DOCTYPEhtml><html><head> <title>MoviesApp</title></head><body><h1>欢迎来到movie应用首页</h1><h2>这是整个movie应用的首页</h2></body></html>4.1.1 配置Django模板4.1.1 配置Django模板图4-2movie应用新首页4.1.2 再次配置模板过渡页将以下粗体代码配置在/movie/views.py中:fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsedefhome(request): returnrender(request,'home.html')4.1.2 再次配置模板4.1.2 再次配置模板在/movie/templates/中创建一个新文件home.html:<!DOCTYPEhtml><html><head> <title>MiniDouban</title></head><body><h1>欢迎来到MiniDouban首页</h1><h2>这是整个MiniDouban项目的首页</h2></body></html>4.1.2 再次配置模板图4-3项目新首页4.1.3 向模板传递数据过渡页将以下粗体代码配置在/movie/views.py中:…defhome(request): returnrender(request,'home.html',{'name':'OSYouth'})…4.1.3 向模板传递数据将以下粗体代码配置在home.html中:…<body><h1>欢迎来到MiniDouban首页,{{name}}</h1><h2>这是整个MiniDouban项目的首页</h2></body>…4.1.3 向模板传递数据图4-4带名字的项目新首页4.1.3 向模板传递数据4.1.4 结合使用Bootstrap过渡页图4-5Bootstrap官网首页4.1.4 结合使用Bootstrap图4-6引导CSS和JS的CDN链接4.1.4 结合使用Bootstrap将以下粗体代码配置在home.html中:…<head>…<linkhref="/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"rel="stylesheet"integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"crossorigin="anonymous">…<scriptsrc="/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"crossorigin="anonymous"></script></body>…4.1.4 结合使用Bootstrap将以下粗体代码配置在home.html中:…<body><divclass="container"><h1>欢迎来到MiniDouban首页,{{name}}</h1><h2>这是整个MiniDouban项目的首页</h2>…</div></body>…4.1.4 结合使用Bootstrap图4-7应用样式后的项目首页4.1.4 结合使用Bootstrap任务4.2

使用Bootstrap处理表单4.2.1 添加搜索表单过渡页4.2.1 添加搜索表单图4-8Bootstrap表单示例代码在/movie/templates/moviehome.html引入Bootstrap的CSS和JS文件之后添加以下内容:<divclass="container"><formaction=""><divclass="mb-3"><labelclass="form-label">搜索电影:</label><inputtype="text"name="searchMovie"class="form-control"/></div><buttontype="submit"class="btnbtn-primary">搜索</button></form></div>4.2.1 添加搜索表单4.2.1 添加搜索表单图4-9带有表单的电影应用主页4.2.1 添加搜索表单将以下粗体代码配置在/movie/views.py中:…defmoviehome(request):

searchTerm=request.GET.get('searchMovie’) returnrender(request,'moviehome.html',{'searchTerm':searchTerm})…在/movie/templates/moviehome.html添加以下粗体代码:…<formaction="">...</form>

搜索{{searchTerm}}</div>…4.2.1 添加搜索表单4.2.1 添加搜索表单图4-10完成表单后的电影应用主页4.2.2 将表单发送到另一个页面过渡页将以下粗体代码配置在urls.py中:…urlpatterns=[path('admin/',admin.site.urls),path("moviehome",views.moviehome),path('',views.home),path('signup/',views.signup,name='signup'),]4.2.2 将表单发送到另一个页面将以下粗体代码配置在urls.py中:…urlpatterns=[path('admin/',admin.site.urls),path("moviehome",views.moviehome,name='moviehome'),path('',views.home,name='home'),path('signup/',views.signup,name='signup'),]4.2.2 将表单发送到另一个页面将以下粗体代码配置在/movie/views.py中:…defsignup(request):email=request.GET.get('email')returnrender(request,'signup.html',{'email':email})4.2.2 将表单发送到另一个页面4.2.2 将表单发送到另一个页面在/movie/templates/home.html中替换添加以下粗体代码:…<divclass="container"><h2>提交邮箱信息</h2><formaction="{%url'signup'%}"><divclass="mb-3"><labelfor="email"class="form-label">邮箱地址:</label><inputtype="email"class="form-control"name="email"/></div><buttontype="submit"class="btnbtn-primary">注册</button></form></div>…4.2.2 将表单发送到另一个页面在/movie/templates/中新创建一个signup.html页面:<!DOCTYPEhtml><html><head><title>MoviesApp</title><linkhref="/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"rel="stylesheet"integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"crossorigin="anonymous"></head><body><divclass="container"> <h2>{{email}}已注册成功</h2></div></body></html>4.2.2 将表单发送到另一个页面图4-11填写注册表单的页面4.2.2 将表单发送到另一个页面图4-12signup页面4.2.2 将表单发送到另一个页面在/movie/templates/signup.html中添加以下粗体代码:…<divclass="container"><h2>{{email}}已注册成功</h2><ahref=“{%url‘home’%}”>项目首页</a></div>…4.2.2 将表单发送到另一个页面图4-13带有返回链接的signup页面项目5

初识Django模型掌握如何创建模型掌握如何管理数据迁移掌握如何访问DjangoAdmin管理后台掌握如何进行媒体文件配置项目目标理解静态图像服务的原理掌握如何将Movie模型添加到Admin管理后台任务5.1

认识模型、迁移文件和Admin管理后台5.1.1 创建第一个模型过渡页Django的model模型具有以下基本特征:每个模型都是一个扩展django.db.models.Model的类。每个模型属性代表一个数据库字段。Django为我们提供了一组有用的方法来从数据库中创建、更新、读取和删除模型信息。5.1.1 创建第一个模型5.1.1 创建第一个模型将以下粗体代码配置在/movie/models.py中:fromdjango.dbimportmodelsclassMovie(models.Model):title=models.CharField(max_length=100)description=models.CharField(max_length=250)image=models.ImageField(upload_to='movie/images/') url=models.URLField(blank=True)5.1.1 创建第一个模型图5-1官方文档中CharField的介绍安装图片依赖第三方包Pillow:pipinstallpillow5.1.1 创建第一个模型5.1.2 迁移文件过渡页运行的提示:"Youhave18unappliedmigration(s).Yourprojectmaynotworkproperlyuntilyouapplythemigrationsforapp(s):admin,auth,contenttypes,sessions.Run'pythonmanage.pymigrate'toapplythem."5.1.2 迁移文件解决的方法:pythonmanage.pymigrate5.1.2 迁移文件图5-2Django初始配置应用的迁移为新建应用创建migrations迁移文件:pythonmanage.pymakemigrations5.1.2 迁移文件图5-3为movie应用生成的迁移文件5.1.2 迁移文件图5-4movie应用0001_initial迁移文件应用migrations迁移文件:pythonmanage.pymigrate5.1.2 迁移文件图5-5应用电影迁移文件完整的构建model模型流程:1.在创建的应用中找到models.py,在该文件里定义模型类,继承自models.Model。2.把应用加入settings.py文件的INSTALLED_APPS配置项中。3.使用makemigrations生成迁移文件。4.适用migrate执行迁移生成数据表。5.1.2 迁移文件每次对model模型进行更改时,都必须运行以下命令:pythonmanage.pymakemigrationspythonmanage.pymigrate5.1.3DjangoAdmin管理后台过渡页在根路由urls.py中添加Admin后台管理地址:…urlpatterns=[path('admin/',admin.site.urls),path("moviehome",views.moviehome),path('',views.home),path('signup/',views.signup,name='signup'),]5.1.3DjangoAdmin管理后台5.1.3DjangoAdmin管理后台图5-6Admin管理后台登录页面创建超级用户命令:pythonmanage.pycreatesuperuser5.1.3DjangoAdmin管理后台修改密码命令:pythonmanage.pychangepassword<username>5.1.3DjangoAdmin管理后台图5-7Admin管理后台登录后的页面5.1.3DjangoAdmin管理后台图5-8用户管理页面任务5.2

配置Movie模型5.2.1为媒体文件配置存储路径过渡页在定义Movie模型时,ImageField存储路径而非直接存储图片。图片和视频文件大带来的问题增加数据库大小。使数据库备份、恢复和迁移操作耗时且占用大量存储空间。数据库不适合存储大文件的原因大多数数据库对存储大文件非最优化设计。数据库更擅长处理结构化数据和文本信息。存储路径的优势数据库只存储文件路径或引用,能更高效进行数据查询和操作。5.2.1为媒体文件配置存储路径5.2.1为媒体文件配置存储路径

将以下粗体代码配置在MiniDouban/settings.py中:…MEDIA_ROOT=os.path.join(BASE_DIR,'media')MEDIA_URL='/media/'如果在之前的操作中没有引进过os包,那需要在文件的顶部添加以下内容:importos5.2.2配置静态文件服务过渡页5.2.2配置静态文件服务在根路由urls.py中添加静态服务配置:…fromdjango.conf.urls.staticimportstaticfromdjango.confimportsettingsurlpatterns=[…]urlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)5.2.3添加一个Movie模型到Admin管理后台过渡页在/movie/admin.py中添加以下加粗代码注册模型:fromdjango.contribimportadminfrom.modelsimportMovieadmin.site.register(Movie)5.2.3添加一个Movie模型到Admin管理后台图5-9带电影模型的Admin管理后台页面5.2.3添加一个Movie模型到Admin管理后台在/movie/apps.py中添加以下加粗代码汉化应用名:fromdjango.appsimportAppConfigclassMovieConfig(AppConfig):default_auto_field="django.db.models.BigAutoField"name="movie"verbose_name="电影"5.2.3添加一个Movie模型到Admin管理后台在/movie/models.py中添加以下加粗代码汉化模型名和相应的属性名:fromdjango.dbimportmodelsclassMovie(models.Model):title=models.CharField(max_length=100,verbose_name="电影名")description=models.CharField(max_length=250,verbose_name="电影简介")image=models.ImageField(upload_to='movie/images/',verbose_name="电影海报")url=models.URLField(blank=True,verbose_name="电影资源链接")

classMeta:verbose_name="电影"verbose_name_plural="电影"5.2.3添加一个Movie模型到Admin管理后台图5-10增加电影页面5.2.3添加一个Movie模型到Admin管理后台图5-11成功添加电影提示页面5.2.3添加一个Movie模型到Admin管理后台图5-12添加电影图片后自动成功创建的对应素材文件夹5.2.3添加一个Movie模型到Admin管理后台项目6

项目优化与创建一个新应用掌握显示所有电影信息的方法能够使用Bootstrap组件优化显示能够实现电影搜索功能项目目标能够创建一个新应用任务6.1

优化movie应用6.1.1 显示所有电影过渡页6.1.1 显示所有电影在/movie/views.py中添加以下加粗代码以显示所有电影:…from.modelsimportMoviedefmoviehome(request):searchTerm=request.GET.get('searchMovie')movies=Movie.objects.all()returnrender(request,'moviehome.html',{'searchTerm':searchTerm,'movies':movies})…6.1.1 显示所有电影在/movie/templates/moviehome.html添加以下粗体代码:…<body><divclass="container"><formaction="">…</form><p>搜索{{searchTerm}}</p>{%formovieinmovies%}<h2>{{movie.title}}</h2><h3>{{movie.description}}</h3><imgsrc="{{movie.image.url}}">{%ifmovie.url%} <ahref="{{movie.url}}">电影资源链接</a>{%endif%}{%endfor%}…6.1.1 显示所有电影图6-1movie应用首页显示电影6.1.2 使用Bootstrap的card组件过渡页6.1.2 使用Bootstrap的card组件在/movie/templates/moviehome.html添加以下粗体代码:…<body><divclass="container"><formaction="">…</form><p>搜索{{searchTerm}}</p><divclass="rowrow-cols-1row-cols-md-3g-4">{%formovieinmovies%}<divv-for="movieinmovies"class="col"><divclass="card"><imgclass="card-img-top"src="{{movie.image.url}}"/><divclass="card-body"><h5class="card-titlefw-bold">{{movie.title}}</h5><pclass="card-text">{{movie.description}}</p>{%ifmovie.url%} <ahref="{{movie.url}}"class="btnbtn-primary">电影资源链接</a>{%endif%}</div></div></div>{%endfor%}</div>…6.1.2 使用Bootstrap的card组件图6-2带有card组件的movie应用首页6.1.3 实现电影搜索功能过渡页在/movie/views.py中添加以下加粗代码以显示所有电影:…defmoviehome(request):searchTerm=request.GET.get('searchMovie')ifsearchTerm:movies=Movie.objects.filter(title__contains=searchTerm)else:movies=Movie.objects.all()returnrender(request,'moviehome.html',{'searchTerm':searchTerm,'movies':movies})…6.1.3 实现电影搜索功能6.1.3 实现电影搜索功能图6-3搜索结果页面任务6.2

创建一个新应用book6.2.1 创建并注册book应用过渡页6.2.1 创建并注册book应用添加一个新应用book:pythonmanage.pystartappbook6.2.1 创建并注册book应用图6-4新建的book文件夹6.2.1 创建并注册book应用在/MIniDouban/settings.py添加粗体代码注册应用:INSTALLED_APPS=["django.contrib.admin","django.contrib.auth","django.contrib.contenttypes","django.contrib.sessions","django.contrib.messages","django.contrib.staticfiles",'movie','book',]6.2.2 开发book应用过渡页6.2.2 开发book应用在/MIniDouban/urls.py添加粗体代码注册应用:…frombookimportviewsasbookviews…urlpatterns=[path("admin/",admin.site.urls),path("moviehome",views.moviehome,name='moviehome'),path('',views.home,name='home'),path('signup/',views.signup,name='signup'),path('bookhome',bookviews.bookhome,name='bookhome')]…6.2.2 开发book应用在/book/views.py添加视图函数:fromdjango.shortcutsimportrenderfrom.modelsimportBookdefbookhome(request):searchTerm=request.GET.get('searchBook')ifsearchTerm:books=Book.objects.filter(title__contains=searchTerm)else:books=Book.objects.all()returnrender(request,'bookhome.html',{'searchTerm':searchTerm,'books':books})6.2.2 开发book应用在/book/models.py添加Book模型:fromdjango.dbimportmodelsclassBook(models.Model):

温馨提示

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

评论

0/150

提交评论