Django

一、安装

windows 7

1.安装pip

下载get-pip.py后直接安装

python3 get-pip.py

2.安装django

pip3 install Django==1.11.4

Linux

1.安装pip

yum install python3-pip

2.安装Django

pip3 install Django==1.11.4

二、创建项目及应用

1.命令行方式创建

 django-admin startproject mypro  -- 创建项目

 python manage.py startapp app01 -- 创建应用

 python manage.py runserver 8080  -- 启动项目

 python manage.py makemigrations  

  python manage.py migrate

2.pycharm

file->new project->Django

三、MVC与MTV模式

四、项目结构

1.urls.py

链接入口,关联到对应的views.py中的一个函数(或者称作generic类),访问的连接对应一个函数

2.views.py

处理用户请求,从urls.py中对应而来。通过渲染templates中的网页可以为用户显示页面内容,比如登录后的用户名,用户请求的数据,通过其输出到页面。

3.models.py

与数据库操作相关,存入或者读取数据时使用,当不使用数据库的时候,也可以当做一般的类封装文件,存储各种类的定义。

4.settings

Django的设置、配置文件,比如DEBUG的开关,静态文件的位置等

5.templates目录

views.py中渲染templates中的html模板,得到动态内容的网页,可以用缓存来提高渲染速度。

四、路由配置系统

URL配置就是URL调用路径与视图函数之间的映射关系

from django.conf.urls import url

from . 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),
]
View Code

五、视图函数

作用:逻辑实现

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)
View Code

附:

http请求-响应过程中有两个核心对象:

http请求对象:HttpRequest

http响应:HttpResponse(用于向网页返回内容)

所在位置:django.http

render函数:渲染打包HttpResponse对象发送给客户端

=================================================================

django流程回顾

URLconf name别名

后端改路径不影响前端

1.URLocnf配置

模板深度查询-->句点查询

template:html+逻辑代码

   渲染变量-->render

   渲染标签

template rander content-->(t.render(c))

locals的使用

不用在render的时候列出对应关系

模板深度查询(列表索引,类对象的属性,)

模板语言之filter

filter语法:{{ var|方法:参数}}

safe方法

<p>{{ s }}</p>

<p>{{ s|safe }}</p>

自定义filter和sample_tag

a.在app中创建templatetags模块(必须的)

b.在该模块下创建任意的.py文件

  导入template模块

  register变量初始化

  函数及装饰器

********************************

from django import template

register=template.Library()(register固定)

@register.filter

def multi(x,y)

  return x*y

********************************

html-->{{ var|muilt:参数}}

c.加载filter

{% load mytag %}

原文地址:https://www.cnblogs.com/geek-ace/p/7401800.html