django 学习一

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
一、django模型
MTV模型:
Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代表:
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,
view再调用相应的Model和Template
 
二、django基本命令
1.创建一个django project
#django-admin.py startproject mysite
 
manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。
settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。
urls.py ----- 负责把URL模式映射到应用程序。
 
2.在mysite目录下创建应用,比如blog:
python manage.py startapp blog
 
3.启动django项目
#python manage.py runserver 8080
 
4.同步更改数据库表或字段
python manage.py makemigrations
python manage.py migrate
 
5.清空数据库
python manage.py flush
 
6.创建超级管理员
python manage.py createsuperuser
python manage.py changepassword username
 
7.Django 项目环境终端
python manage.py shell
 
 
三、路由配置urlconf
URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。
     '''
     
     urlpatterns = [
          url(正则表达式, views视图函数,参数,别名),
]
 
 
参数说明:
 
     一个正则表达式字符串
     一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
     可选的要传递给视图函数的默认参数(字典形式)
     一个可选的name参数
 
     '''
     
正则配置
from django.conf.urls import urlfrom . import views
 
urlpatterns = [
     url(r'^articles/2003/$', views.special_case_2003),
     url(r'^articles/([0-9]{4})/$', views.year_archive),    #小括号表示分组,单座参数传递给视图函数
     url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
     url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
     
]
 
有名分组
 
在Python 正则表达式中,命名正则表达式组的语法是(?P< name >pattern),其中name 是组的名称,pattern 是要匹配的模式。
下面是以上URLconf 使用命名组的重写:
from django.conf.urls import urlfrom . import views
 
urlpatterns = [
     url(r'^articles/2003/$', views.special_case_2003),
     url(r'^articles/(?P< year >[0-9]{4})/$', views.year_archive),
     url(r'^articles/(?P< year >[0-9]{4})/(?P< month >[0-9]{2})/$', views.month_archive),
     url(r'^articles/(?P< year >[0-9]{4})/(?P< month >[0-9]{2})/(?P< day >[0-9]{2})/$', views.article_detail),
]
 
 
小括号里的month关键字传递给视图函数
 
urlconf怎么解析url:
URLconf 在请求的URL 上查找,将它当做一个普通的Python 字符串。不包括GET和POST参数以及域名。
例如,http://www.example.com/myapp/ 请求中,URLconf 将查找myapp/。
在http://www.example.com/myapp/?page=3 请求中,URLconf 仍将查找myapp/。
URLconf 不检查请求的方法。换句话讲,所有的请求方法 —— 同一个URL的POST、GET、HEAD等等 —— 都将路由到相同的函数。
 
 
四、视图函数
 
HttpResponse: 返回客户端响应内容
return  HttpResponse("ok")
 
render: 返回选然后的模板html文件
return render(request, 模板, 传递给模板的字典)
 
request: 请求对象
 
redirect: 页面跳转
return redirect('/index/')
 
五、模板
 
{{ 变量 }} 双大括号存储变量
{% for i in list %} {{  i }} {% endfor %}  #单大括号存放逻辑结构
 
.号相当于类,深度查找
i.name  查找属性
 
变量过滤器:
语法格式:      {{obj|filter:param}}
 
# 1  add          :   给变量加上相应的值
    #   # 2  addslashes   :    给变量中的引号前加上斜线
    #   # 3  capfirst     :    首字母大写
    #   # 4  cut          :   从字符串中移除指定的字符
    #   # 5  date         :   格式化日期字符串
    #   # 6  default      :   如果值是False,就替换成设置的默认值,否则就是用本来的值
    #   # 7  default_if_none:  如果值是None,就替换成设置的默认值,否则就使用本来的值
    
  #实例:#value1="aBcDe"
  {{ value1|upper }}< br >
  #value2=5
  {{ value2|add:3 }}< br >
  #value3='he  llo wo r ld'
  {{ value3|cut:' ' }}< br >
  #import datetime
  #value4=datetime.datetime.now(){{ value4|date:'Y-m-d' }}< br >
  #value5=[]
  {{ value5|default:'空的' }}< br >
  #value6='< a  href = "#" >跳转</ a >'
  {{ value6 }}
 
{% autoescape off %}
   {{ value6 }}
{% endautoescape %}
 
{{ value6|safe }}< br >
{{ value6|striptags }}
#value7='1234'
{{ value7|filesizeformat }}< br >
{{ value7|first }}< br >
{{ value7|length }}< br >
{{ value7|slice:":-1" }}< br >
#value8='
  {{ value8|urlencode }}< br >
     value9='hello I am yuan'







     本文转自小白的希望 51CTO博客,原文链接:http://blog.51cto.com/haoyonghui/1956066 ,如需转载请自行联系原作者


相关文章
|
存储 缓存 数据库
Django框架学习(四)
Django框架学习(四)
|
前端开发 关系型数据库 MySQL
Django框架学习(三)
Django框架学习(三)
|
JSON 前端开发 数据库
Django框架学习(一)
Django框架学习(一)
|
4月前
|
编解码 前端开发 JavaScript
技术经验分享:Django学习日记
技术经验分享:Django学习日记
|
5月前
|
Python
Django 学习教程-介绍与安装
本章介绍了Django是什么,以及为什么使用Django和安装Django
62 1
Django 学习教程-介绍与安装
【Django学习】(十六)session_token认证过程与区别_响应定制
【Django学习】(十六)session_token认证过程与区别_响应定制
|
5月前
|
调度 Apache 数据库
Django 学习教程-第一个 Django 应用
本章主要讲述了如何创建一个Django项目,以一个投票案例程序介绍了Django的请求和响应流程。
74 1
|
11月前
|
前端开发 数据库 网络架构
Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架
Python Django框架中文教程:学习简单、灵活、高效的Web应用程序框架
|
存储 NoSQL 中间件
Django框架学习(二)
Django框架学习(二)
【Django学习】(十二)GenericAPIView_过滤_排序_分页(上)
【Django学习】(十二)GenericAPIView_过滤_排序_分页
【Django学习】(十二)GenericAPIView_过滤_排序_分页(上)