亚马逊没有网站怎么做seo,石家庄网站建设哪家便宜,内蒙古城乡建设网站,网站费用属于哪个费用一、创建项目test1及应用booktest 创建应用booktest 二、安装应用 在test1/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装 初始项目的INSTALLED_APPS如下图#xff1a; 在元组中添加一个新的项#xff0c;当前示例为booktest booktest, 三、设计模型 1.定义模型…一、创建项目test1及应用booktest 创建应用booktest 二、安装应用 在test1/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装 初始项目的INSTALLED_APPS如下图 在元组中添加一个新的项当前示例为booktest booktest, 三、设计模型 1.定义模型类
模型类定义在models.py文件中继承自models.Model类 说明不需要定义主键列在生成时会自动添加并且值为自动增长 图书表结构设计 表名BookInfo 图书名称btitle 图书发布日期bpub_date 英雄表结构设计 表名HeroInfo 英雄姓名hname 英雄性别hgender 英雄简介hcontent 所属图书hbook 图书-英雄的关系为一对多 根据设计在models.py中定义模型类如下 from django.dbimport models classBookInfo(models.Model): btitle models.CharField(max_length20) bpub_date models.DateField() def __str__(self): return %d % self.pk classHeroInfo(models.Model): hname models.CharField(max_length20) hgender models.BooleanField() hcontent models.CharField(max_length100) hBook models.ForeignKey(BookInfo) def __str__(self): return %d % self.pk 2.迁移
默认采用sqlite3数据库 迁移前目录结构如下图 迁移由两步完成 1.生成迁移文件根据模型类生成创建表的语句 2.执行迁移根据第一步生成的语句在数据库中创建表 生成迁移文件命令python manage.py makemigrations 执行迁移命令python manage.py migrate 迁移后目录结构如下图 3.数据操作
进入项目的shell进行简单的API操作 按ctrld或输入quit()可以退出shell python manage.py shell 首先引入booktest/models中的类 frombooktest.models import BookInfo,HeroInfo
查询所有图书信息 BookInfo.objects.all()
因为当前并没有数据所以返回空列表 新建图书对象 bBookInfo() b.btitle射雕英雄传 from datetime import date b.bpub_datedate(1990,1,10) b.save() 注多个图书对象需要多次退出多次新建对象否则覆盖因为这里数据库是sqlite3 四、视图 1.定义视图
打开booktest/views.py文件定义视图index如下 from django.shortcuts import render from .models import BookInfo #首页展示所有图书 def index(reqeust): #查询所有图书 booklist BookInfo.objects.all() #将图书列表传递到模板中然后渲染模板 return render(reqeust, booktest/index.html, {booklist: booklist}) #详细页接收图书的编号根据编号查询再通过关系找到本图书的所有英雄并展示 def detail(reqeust, id): #根据图书编号对应图书 book BookInfo.objects.get(pkid) #将图书信息传递到模板中然后渲染模板 return render(reqeust, booktest/detail.html, {book: book}) 2.配置URLconf
1.在booktest/应用下创建urls.py文件定义代码如下 from django.conf.urls import url
#引入视图模块 from . import views urlpatterns [ #配置首页url url(r^$, views.index), #配置详细页url\d表示多个数字小括号用于取值建议复习下正则表达式 url(r^(\d)$,views.detail), ] 2.包含到项目中打开test1/urls.py文件test1/urls.py文件完整代码如下 fromdjango.conf.urls import include, url from django.contrib import admin urlpatterns [ url(r^admin/,include(admin.site.urls)), url(r^,include(booktest.urls)), ] 五、模板 创建模板
为应用booktest下的视图index创建模板index.html目录结构如下图 设置查找模板的路径打开test1/settings.py文件设置TEMPLATES的DIRS值 DIRS: [os.path.join(BASE_DIR,templates)], 定义模板 创建templates/booktest/index.html文件如下 html head title首页/title /head body h1图书列表/h1 ul {#遍历图书列表#} {%for book in booklist%} li {#输出图书名称并设置超链接链接地址是一个数字#} ahref{{book.id}}{{book.btitle}}/a /li {%endfor%} /ul /body /html 创建templates/booktest/detail.html文件如下 html head title详细页/title /head body {#输出图书标题#} h1{{book.btitle}}/h1 ul {#通过关系找到本图书的所有英雄并遍历#} {%for hero inbook.heroinfo_set.all%} {#输出英雄的姓名及描述#} li{{hero.hname}}---{{hero.hcontent}}/li {%endfor%} /ul /body /html 最终文件如下 六、开发服务器
运行服务器命令pythonmanage.py runserver 七、在浏览器地址栏中输入网址 http://127.0.0.1:8000/ 网页显示效果如下图视图被成功执行了