Open Qingquan-Li opened 6 years ago
理解 Django 的 MTV(Model+Template+View)模式,创建一个 「Hello + 输出用户名」简单的静态页面
开发环境: - macOS 10.12.6 - python3.5 - Django 1.11.7 安装 Django 如本机安装的 Python 版本为 python3.5 ,所以使用 pip3.5 安装
开发环境:
- macOS 10.12.6 - python3.5 - Django 1.11.7
安装 Django
如本机安装的 Python 版本为 python3.5 ,所以使用 pip3.5 安装
pip3.5 install django
查看 Django 版本
>>> import django >>> django.VERSION (1, 11, 7, 'final', 0)
django-admin
django-admin startproject firstsite
#!/usr/bin/env python3.5
每个 Django project 中可以有多个 Django apps,可以想成是类似模组的概念。
python3.5 manage.py startapp firstapp
INSTALLED_APPS
创建数据库后就可以看到 Django 网站的初始界面了。
python3.5 manage.py makemigrations
python3.5 manage.py migrate
python3.5 manage.py runserver
接下来的四、五、六、七步,都是为了创建下面这个网页做调整
在 modle 中创建数据表:在 root/firstsite/firstapp/models.py 中定义一个类和相应的数据字段
from django.db import models # 创建数据表:在 models.py 文件中定义一个类和相应的数据字段 class People(models.Model): # models.CharField 为字段的数据类型,以下字段的数据类型为char字符类型 # 3个参数分别代表:数据库中该字段可以为空;表单(验证)中可以不填写;最大长度为200 name = models.CharField(null = True, blank = True, max_length = 200) job = models.CharField(null = True, blank = True, max_length = 200)
合并数据库:在 终端中 cd 到文件 root/firstsite 下,运行以下 2 行命令合并数据库:1⃣ python3.5 manage.py makemigrations 2⃣ python3.5 manage.py migrate 。注:每次 model 层有改动都需要输入这 2 行合并数据库。
在 root/firstsite/firstapp/views.py 中创建视图函数,从而获取 model 中的数据:
from firstapp.models import People def first_try(request): person = People(name="Fatli", job="programmer") return
引入 Template ,用模板把数据渲染在网页中。在 root/firstsite/firstapp/views.py 中继续完善:
from firstapp.models import People from django.shortcuts import render, HttpResponse from django.template import Context, Template # 引入 Template 模版对数据渲染 # 在 View 中获取 Model 中的数据:在 views.py 文件中创建视图函数 def first_try(request): person = People(name = 'Fatli', job = 'programmer') html_string = ''' <html> <head> <meta charset="utf-8"> <title>firstapp</title> </head> <body> Hello, {{ person.name }} </body> </html> ''' t = Template(html_string) # 把html_string的内容转变为字符模板 c = Context({ 'person':person }) # 接收一个字典类型的参数 web_page = t.render(c) # 通过render()方法进行渲染(此时网页依然为字符串格式),储存在一个对象中 # 把渲染后的(字符串)对象变成一个http对象。注:所有的视图函数都是接收一个request对象,返回一个response对象 return HttpResponse(web_page)
在 root/firstsite/firstsite/urls.py 中分配网址,让链接可以被访问:
from django.conf.urls import url from django.contrib import admin from firstapp.views import first_try # 新添加代码 urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^first_try/', first_try), # 在 URL 中分配网址 ]
此时访问 http://127.0.0.1:8000/first_try/ 即可看到一个「Hello + 输出用户名」的简单页面
理解 Django 的 MTV(Model+Template+View)模式,创建一个 「Hello + 输出用户名」简单的静态页面
一、创建 Django project
django-admin
命令创建一个项目,命名为 firstsite(或其他命名):django-admin startproject firstsite
#!/usr/bin/env python3.5
二、创建 Django App
python3.5 manage.py startapp firstapp
。注:manage.py 是 Django 提供的命令行工具INSTALLED_APPS
,在末尾添加刚创建的 app 名字(这里是 firstapp )三、创建数据库
python3.5 manage.py makemigrations
2⃣python3.5 manage.py migrate
python3.5 manage.py runserver
。访问 http://127.0.0.1:8000 或 http://localhost:8000 即可看到 Django 网站的初始界面四、在 Model 中创建数据表
在 modle 中创建数据表:在 root/firstsite/firstapp/models.py 中定义一个类和相应的数据字段
合并数据库:在 终端中 cd 到文件 root/firstsite 下,运行以下 2 行命令合并数据库:1⃣
python3.5 manage.py makemigrations
2⃣python3.5 manage.py migrate
。注:每次 model 层有改动都需要输入这 2 行合并数据库。五、在 View 中获取 Model 中的数据
在 root/firstsite/firstapp/views.py 中创建视图函数,从而获取 model 中的数据:
六、引入 Template 模板对数据渲染
引入 Template ,用模板把数据渲染在网页中。在 root/firstsite/firstapp/views.py 中继续完善:
七、在 URL 中分配网址
在 root/firstsite/firstsite/urls.py 中分配网址,让链接可以被访问:
此时访问 http://127.0.0.1:8000/first_try/ 即可看到一个「Hello + 输出用户名」的简单页面