Django学习之路(2)
2020-02-01 10:24
417 查看
Django的MVT实例
1. 创建并设计模板文件夹
(1)在我们之间创建好的blog项目中创建一个templates文件夹,用于存放我们的模板。并在templates文件夹中创建一个与我们的app同名的文件夹用来专门存放该app的模板。
(2)在settings.py中设置我们模板文件的相对路径
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },
2.创建视图函数并编写模板
(1)在views.py中创建视图函数:books,show_heros
from django.shortcuts import render from test1.models import GamesInfo, HeroInfo # Create your views here. def games(request): games = GamesInfo.objects.all() return render(request, 'test1/games.html', {'games': games}) def show_heros(request, gid): games = GamesInfo.objects.get(id = gid) heros = games.heroinfo_set.all() return render(request, 'test1/show_heros.html', {'games': games, 'heros': heros})
2.编写模板
games.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>游戏页面</title> </head> <body> <h1>游戏信息</h1> 游戏名称列表如下: <ul> {% for game in games %} <li><a href="games/{{ game.id }}">{{ game.gname }}</a></li> {% endfor %} </ul> </body> </html>
showheros.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>英雄页面</title> </head> <body> <h1>{{ games.gname }}</h1> 英雄信息如下: <ul> {% for hero in heros %} <li>{{ hero.hname }}--{{ hero.hcomment }}</li> {% empty %} <li>没有英雄信息</li> {% endfor %} </ul> </body> </html>
3.配置路由
Django的默认路由是我们的项目blog下的urls.py,但是在实际开发中,我们需要完成许多的不同app的功能,如果都写在默认的urls.py中的话代码会变得非常杂乱且不好维护。所以我们在每一个我们的app中创建一个属于它的urls.py。通过Django默认的urls.py中的include方法来找我们的test1下我们自己创建的urls.py,实现路由共能
(1)在我们的test1中创建一个名为urls.py的python文件(2)编写路由
1.首先在blog下的urls.py中设置为使用我们test1中urls.py配置路由
from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^', include('test1.urls')), ]
2.在test1下的urls.py中配置我们的路由
from django.conf.urls import url from test1 import views urlpatterns = [ url(r'^games$', views.games), url(r'games/(\d+)$', views.show_hreos) ]
4.刷新页面,一个基本的mvt案例就实现了
1.输入127.0.0.1:8000/games
2.点击英雄联盟
3.点击王者荣耀
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Python的Django的学习之路(第三篇)
- django的学习之路
- python3 + Django 学习之路(一)
- Django学习之路
- Django学习之路-1项目开始
- django学习之路
- django学习之路(二)
- Django学习之路(八)Admin的学习
- Django学习之路(五)template的学习
- django学习之路(一)
- Python学习之路——django(一)
- Django学习之路
- django学习之路
- Django学习之路
- django学习之路(三)
- Django 学习之路:Django之强大的Form功能
- Django学习之路(7)
- Django学习之路4-Models
- Django学习之路(5)
- Django学习之路3-项目与应用