您的位置:首页 > 编程语言 > Go语言

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.点击王者荣耀

  • 点赞
  • 收藏
  • 分享
  • 文章举报
李松洋123 发布了8 篇原创文章 · 获赞 3 · 访问量 1078 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: