欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django学习笔记之创建工程、模板,标签

程序员文章站 2022-06-09 09:29:08
...
Day one:
初始化django,创建项目,不需要进入python环境
django-admin.py startproject testtwo

查看目录下文件:
dir testtwo

显示四个文件:
__init__.py manage.py setting.py urls.py

修改setting配置
	添加应用
	INSTALLED_APPS = (
		'django.contrib.admin',
		'django.contrib.auth',
		'django.contrib.contenttypes',
		'django.contrib.sessions',
		'django.contrib.messages',
		'django.contrib.staticfiles',
		'blog',				
	)
	修改时区,编码等等
	文首加上utf编码# -*- coding:utf-8 -*-
	
创建App:
django-admin.py startapp blog
	
修改urls
url(r'^blog/index/$','blog.views.index')
当我们访问^blog/index/$时,调用index方法

修改app下的views文件
from django.http import HttpResponse
def index(req): #视图处理方法,请求信息
	return HttpResponse('<h1>hello world</h1>')#输出字符串

运行开发服务器127.0.0.1:8000
python manage.py runserver

Day two:
直接返回的方法:
return HttpResponse('<h1>hello world</h1>')#输出字符串
今天学习了返回htmml模板的方法,即在项目app文件夹里创建templates文件夹
创建html文件testindex.html,保存在其中
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>csvn</title>
</head>
<body>
	<h1>hello world</h1>
</body>
</html>

在views文件下面修改相应函数:
# -*- coding:utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader,Context

def index(req):
	t = loader.get_template('testindex.html') #将模板文件加载过来
	c = Context({}) #添加需要返回的数据,这里没有为空
	
	return HttpResponse(t.render(c))#将数据渲染到html文件,然后返回到页面上

	
下面介绍动态的传递变量到html模板文件中:
testindex.html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{title}}</title>##变量用{{}}表示
</head>
<body>
	<h1>hello {{user.name}}</h1> #传递字典变量
	<li>{{user.age}}</li>
	<li>{{user.sex}}</li>
	<div> the user {{user.name}} say: {{user.say}}</div>
	<li>{{book_list.0}}</li> #传递列表变量
	<li>{{book_list.1}}</li>
	<li>{{book_list.2}}</li>
</body>

对应在views文件中修改如下:
# -*- coding:utf-8 -*-
from django.shortcuts import render
from django.shortcuts import render_to_response


def index(req):
	user = {'name':'zhangzhiahao','age':'90','sex':'male'} #以字典的方式
	book_list = ['python','java','php','c++'] #以列表的方式
	return render_to_response('testindex.html',{'title':'张志浩','user':user,'book_list':book_list})
	#这里调用了render_to_response方法,不用分两步写了,简单快捷
# Create your views here.

还可以以对象的方式传递变量:


在views文件下面添加一个类,并在index函数中调用它
class Person(object): #继承了object类,拥有更多的方法
	def __init__(self,name,age,sex):
		self.name = name
		self.age = age
		self.sex = sex
	
	def say(self):
		eturn "i am" + self.name
	
	def index(req):
	
	user = Person('张志浩and his dog','12','male') 以对象的方式
	#此时user代表的式一个Person对象:
	return render_to_response('testindex.html',{'title':'张志浩','user':user)
	
此时在html文件中可以调用对象的变量和方法:
	<div> the user {{user.name}} say: {{user.say}}</div>
	
下面介绍两个标签:
	在html文件中使用标签:一个是判断语句,一个是循环语句:
	{% if user%} #若user不为空则执行下列语句
	<li> name: {{user.name}}</li>
	{% else %} #否则执行下列语句
		用户不存在
	{% endif %}

	
	{% for book in book_list%}  #便利book_list列表中的元素
		<li>{{book}}</li>
	{% endfor %}

	forloop.counter显示循环中的次数,即该元素的***,从1开始
	{% for k,v in user.items%}
	<li>{{forloop.counter}} : {{k}} : {{v}}</li>
	{% endfor %}

Django学习笔记之创建工程、模板,标签