1 创建django工程
打开命令行,cd 到一个你想放置你代码的目录,然后运行以下命令:
django-admin startproject mysite
2 开始一个app
接下来我们创建app目录(用于写整个web站点的某种功能),命令如下:
python manage.py startapp appmy
(1) 编写视图
在appmy/views.py 中写如下函数:
(2)在mysite/urls.py中声明一个路由
需要做两点:导入视图,注册路由。 然后我们重启服务,访问http://127.0.0.1:8000/index/看看:
重启服务:
访问http://127.0.0.1:8000/index/:
这样我们就完成了第一个视图页面。
mysite/urls.py中:
重启之后访问:http://127.0.0.1:8000/home,如下:
注意:视图函数中的request是django对http请求的封装,其中request.method封装了请求动作,包括GET,PUT,POST等。
(2)class based view (CBV)
用类代替视图函数的方法就叫做CBV,写法如下:
app01/views.py中:
mysite/urls.py中:
重启服务之后,访问:http://127.0.0.1:8000/myhome, 如下:
有时可以在类中通过继承父类的despatch方法,然后做一些自定义操作。如下:
- View Code
想知道CBV的更多原理,可以去看下源码。
重启之后,访问http://127.0.0.1:8000/index,如下:
(2)在项目根目录mysite下新建templates文件夹
(3)然后,在django的配置文件mysite/settings.py中找到TEMPLATES这个变量,是一个大列表,在列表中的DIRS后面,配上'templates',即可;即'DIRS': ['templates', ],如下:
(4)接下来可以在templates文件夹下创建一个HTML文件,如index.html
index.html文件内容:
(5)在app01/views.py中修改一下视图函数index()
(6)重启后,访问http://127.0.0.1:8000/index
回到顶部
7 使用模板语言
(1)views.py 的index中可以传变量,如下
(2)传参数之后可以在模板index.html中使用这些参数
重启之后,访问http://127.0.0.1:8000/index,如下:
总结一下模板语言格式:
8 自定义simple_tag(这个没有成功)
(1)在app01目录下创建templatetags目录
(2)在templatetags目录下新建任意py文件, 如tag1.py
并且在tag1.py中这样写:
如果不注册的话,django无法找到自定义的simple_tag。
为方便我们新创建了一个simple.html以及视图函数simple, 并新注册了路由:
simple.html:
views:
1
2
defsimple(request):
returnrender(request, "simple.html")
urls:
1
url(r'^simple', views.simple),