www.djangobook.com
djangobook.py3k.cn
1、django-admin.py startproject mysite
2、manage.py startapp blog
3、修改文件 setting.py,urls.py
4、定义了一个index,在blog/views.py
5、创建了模板,blog/templates/index.html
6、views.py文件修改
7、manage.py runserver 启动一个web服务器
8、模板语法 if 与 for
% for book in book_list reversed %}
<li>{{ book }}</li>
{% if forloop.first %}
<p>begin</p>
{% endif %}
<p>forloop.counter : {{ forloop.counter }}</p>
<p>forloop.counter0 : {{ forloop.counter0 }}</p>
<p>forloop.revcounter : {{ forloop.revcounter }}</p>
<p>forloop.revcounter0 : {{ forloop.revcounter0 }}</p>
{% if forloop.last %}
<p>begin</p>
{% endif %}
{% empty %}
<p>没有元素</p>
{% endfor %}
{% for key in user %}
<p>{{ key }}</p>
{% endfor %}
{% for key,value in user.items %}
<p>{{ key }}:{{ value }}</p>
{% endfor %}
9、过滤器
<p>{{ book | upper }}</p>
<p>{{ book | upper | lower | capfirst }}</p>
10、自定义过滤器
在blog中建一个templatetags
from django import template
register = template.Library()
def percent(value):
return str(value) + "%"
register.filter(percent)
使用自定义的过滤器
{% load percent %}
<p>{{ data | percent}}</p>
11、url配置
(1)在blog的views.py中
id = request.GET.get('id')
name = request.GET.get('name')
地址栏输入请求地址
http://127.0.0.1:8000/blog/page1/?id=111&name=kingrain
page.html中
<p>id is {{ id}}</p>
<p>name is {{ name}}</p>
(2)在blog的urls.py中
url(r'^page2/(d{4})/$', views.page2, name='page2'),
在blog的views.py中
def page2(request, p1):
地址栏输入请求地址
page2后面必须有4个数字
在blog的urls.py中
url(r'^page2/(d{4})/(w+)/$', views.page2, name='page2'),
在blog的views.py中
def page2(request, p1,p2):
地址栏输入请求地址
page2后面必须有4个数字,在后面必须有数字或字母1个
在blog的urls.py中
url(r'^page3/(?P<id>d{4})/(?P<name>w+)/', views.page3, name='page3'),
在blog的views.py中
def page2(request, p1,p2):
地址栏输入请求地址
page2后面必须有4个数字且必须为id,在后面必须有数字或字母1个且必须为name
12、orm(一一对应 映射)
学生:姓名 年龄
class Student
name 字符类型
age 整数类型
table tb_student
name varchar(20)
age int
原来:select * from tb_student
现在(orm):Student.getAll()
13、数据库交互
添加好类后在控制台执行
python manage.py migrate
python manage.py makemigrations blog
python manage.py makemigrations blog 0001
从数据库到文件
python manage.py inspectdb
python manage.py inspectdb > blog/models.py
14、
age__gt = 16(age > 16)
age__gte = 16(age >= 16)
__contains (%%)
15、数据库操作
查找id 为1 的数据
student = Student.objects.get(id=1)
将其名字命名为kingrain
student.name = "kingrain"
将其年龄改为18
student.age = 18
数据库数据保存
student.save()
数据库修改
将年龄大于20的名字改为xyz
student_list = Student.objects.filter(age__gt=20).update(name = "xyz")
数据库新增
newstudent = Student(name="abc",age=10,time2school="2017-07-10")
newstudent.save()
数据库删除
student = Student.objects.get(id=1)
student.delete()
16、修改完数据库后要执行的命令
python manage.py migrate blog
python manage.py makemigrations blog