Django 入门学习(一)

Django 简单教程

阅读前注意

须要了解 Python 的基础html

背景

官方github: github.com/django/djan…python

Django是一个开放源代码的Web应用框架,由Python写成。git

Django遵照BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。github

Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。正则表达式

安装

windows

一、Python 下载地址:www.python.org/downloads/django

二、Django 下载地址:www.djangoproject.com/download/windows

详细环境配置请 Google设计模式

Mac安装

  • 安装 python,会自动安装 pip浏览器

    brew install -v python\@2
    复制代码
  • 安装 Djangobash

    sudo pip install Django
    复制代码
  • 查看安装版本号

    django-admin.py --version
    复制代码

来一个helloword

[注意] 这里的 django 的版本是1.6.11

  • 建立

    django-admin.py startproject HelloWorld
    复制代码
  • 运行

    cd HelloWorld
    python manage.py runserver
    复制代码
  • 目录介绍

    HelloWorld               // 根目录
    ├─manage.py              //一个实用的命令行工具,可以让你以各类方式与该 Django 项目进行交互。
    ├─HelloWorld						 //项目的容器。
    |     ├─__init__.py			 //一个空文件,告诉 Python 该目录是一个 Python 包。
    |     ├─settings.py      //该 Django 项目的设置/配置
    |     ├─urls.py					 //该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
    |     ├─wsgi.py					 //一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
    复制代码

视图和 URL 配置

  • 在先前建立的 HelloWorld 目录下的 HelloWorld 目录新建一个 views.py 文件,并输入代码:

    from django.http import HttpResponse
     
    def hello(request):
        return HttpResponse("Hello world ! ")
    复制代码
  • 编辑 urls.py

    from django.conf.urls import patterns, include, url
    from . import views
    # from django.contib import admin
    
    # admin.autodiscover()
    
    urlpatterns = patterns(
        '',
        # Examples:
        # url(r'^$', 'HelloWorld.views.home', name='home'),
        # url(r'^blog/', include('blog.urls')),
    
        # url(r'^admin/', include(admin.site.urls)),
        url('hello/?$', views.hello),
    )
    
    
    复制代码
  • 浏览器打开 http://127.0.0.1:8000/hello

path() 函数

Django path() 能够接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。

语法格式:

path(route, view, kwargs=None, name=None)
复制代码
  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

url(路由) 函数

语法格式:

from django.conf.urls import url

urlpatterns = [
     url(正则表达式, views视图,参数,别名),
]
复制代码
  • 正则表达式:一个正则表达式字符串

  • views视图: 一个可调用对象,一般为一个视图函数

  • 参数 : 可选的要传给视图函数的默认参数(字典形式)

  • 别名: 一个可选的name参数

Django 模板

在 HelloWorld 根目录底下建立 templates 目录并创建 hello.html 文件

  • 编辑hello.html, 变量使用双括号

    <h1>{{ hello }}</h1>
    复制代码
  • 接下来咱们须要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates",],以下所示:

    TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
    复制代码
  • 目录结构以下

    HelloWorld
    ├─manage.py
    ├─templates
    |     └hello.html
    ├─HelloWorld
    |     ├─__init__.py
    |     ├─__init__.pyc
    |     ├─settings.py
    |     ├─settings.pyc
    |     ├─urls.py
    |     ├─urls.pyc
    |     ├─views.py
    |     ├─views.pyc
    |     ├─wsgi.py
    |     └wsgi.pyc
    复制代码

Django 模板标签

if/else 标签
  • 基本语法格式以下:
{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}
复制代码
  • 根据条件判断是否输出。if/else 支持嵌套。

{% if %} 标签接受 and , or 或者 not 关键字来对多个变量作判断 ,或者对变量取反( not ),例如:

{% if athlete_list and coach_list %}
     athletes 和 coaches 变量都是可用的。
{% endif %}
复制代码
for 标签

{% for %} 容许咱们在一个序列上迭代。

{% for athlete in athlete_list %}
    <h1>{{ athlete.name }}</h1>
    <ul>
    {% for sport in athlete.sports_played %}
        <li>{{ sport }}</li>
    {% endfor %}
    </ul>
{% endfor %}
复制代码
ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中全部的值。

{% ifequal section 'sitenews' %}
    <h1>Site News</h1>
{% else %}
    <h1>No News Here</h1>
{% endifequal %}
复制代码
注释标签
{# 这是一个注释 #}
复制代码
过滤器

模板过滤器能够在变量被显示前修改它,过滤器使用管道字符,以下所示:

{{ name|lower }}
复制代码
include 标签

{% include %} 标签容许在模板中包含其它的模板的内容。

{% include "nav.html" %}
复制代码

模板继承

模板能够用继承的方式来实现复用。

<!DOCTYPE html>
<html>
  <head>
    <title>ddddddd</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <p>Django 测试。</p>
    {% block mainbody %}
    <p>original</p>
    {% endblock %}
  </body>
</html>

复制代码

咱们能够在 hello.html 进行继承

{%extends "base.html" %}
<h1>{{ hello }}</h1>
{% block mainbody %}
<h6>继承了 base.html 文件</h6>
{% endblock %}

复制代码

最后的目录结构

HelloWorld
├─manage.py
├─templates
|     ├─base.html
|     └hello.html
├─HelloWorld
|     ├─__init__.py
|     ├─__init__.pyc
|     ├─settings.py
|     ├─settings.pyc
|     ├─urls.py
|     ├─urls.pyc
|     ├─views.py
|     ├─views.pyc
|     ├─wsgi.py
|     └wsgi.pyc
复制代码
相关文章
相关标签/搜索