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

最新文章

  1. 从零开始编写自己的C#框架(23)——上传组件使用说明
  2. 如何利用rem在移动端不同设备上让字体自适应大小
  3. maven整理——初步
  4. scrollView的讲解
  5. mysql 链接失败(ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES))
  6. Linux新建用户无法使用tab补全的修改办法
  7. Codeforces 697A - Pineapple Incident
  8. Tiling 分类: POJ 2015-06-17 15:15 8人阅读 评论(0) 收藏
  9. 无法找到类:java.lang.ClassNotFoundException: com.tt.javaweb.HttpServletRequest问题解决
  10. smarty半小时快速上手入门教程
  11. poj1515--Street Directions(边的双连通)
  12. cocos2dx进阶学习之CCNode
  13. Initialising Memories
  14. Centos7.2 编译安装PHP7
  15. VS2015 &#39;utf-8&#39; codec can&#39;t decode byte
  16. ANDROID基础ACTIVITY篇之Activity的生命周期(一)
  17. Java集合-----Set详解
  18. linux程序员的proc文件系统
  19. [cb]NGUI事件及复杂UI管理
  20. c++ 判断两个容器是否相等(equal)

热门文章

  1. JDBC_13_封装JDBC工具类
  2. 数据结构之栈(JavaScript描述)
  3. 通读《构建之法》与CI/CD工具尝试
  4. Powershell免杀
  5. Linux中数据库的安装和配置(MySQL与Maria DB)
  6. Access数据库及注入方法
  7. 3 Java概述
  8. Kafka源码分析系列-目录(收藏不迷路)
  9. unapp一键登录
  10. c++学习的一些忠告(转载)