zoukankan      html  css  js  c++  java
  • django安装与简介

    一、初识Django
    自称MTV框架。和传统的MVC大同小异。
    M指数据模型(Model),T指模板(Template),用来描述数据的展现。V指的是视图(View),并且,在Django中可以通过URL分发器对URL和View之间的映射进行配置,而View则URL分发器回调启动server

    python manage.py runserver
    可以更改本地端口:
    python manage.py runserver 8080
    还可以设置成允许公开的互联网连接
    python manage.py runserver 127.0.0.1:8000
    这样只要在别人的浏览器中输入你的服务器的IP和端口就可以访问了
    http://127.0.0.1:8000


    还需要在settings.py中定义模板所在的路径,记住用引号标识路径字符串


    Django服务器一般情况下会自动重载你的每一次修改,但对新创建的操作不会重载,所以还是要重启服务器。

    (1)Django的简单流程
    1. 一个来自/hello/的请求
    2. 检查settings.py中ROOT_URL_CONF属性所设定的映射配置信息
    3. 找到第一个匹配/hello/的配置
    4. 如果找到,就调用相关联的view函数
    5. view函数返回HttpResponse对象
    6. Django把HttpResponse对象转化成相应的HTTP response,形成网页
    URL映射
    Django是在urls.py中,把URL访问映射到views.py模块中相应的响应函数。
    函数的特点的,第一个参数一定是requrest(HTTPRequest对象),返回要是HttpResponse

    至于映射的方式是采用正规表达式。
    urlpatterns = patterns('',
    ('^hello/$', hello),
    )
    Django对访问的URL地址,首先会去掉8080后面的"/",然后进行URL映射分析。
    这里要注意的是尾部的"/",理论上你输入地址时不加上的话,会发生跳转错误,因为
    无法映射到这个URL,但Django设置中有一个参数APPEN_SLASH=True的话,Django
    会自动帮你加上尾部的"/";当它设置成False时,那就会报错提交报错:URL doesn'tend in a slash and you have APPEND_SLASH set.。

    还有要记得一旦设置你自定义气URL映射信息,Django就不会让localhost:8000/这个根路径
    返回It works那样的默认信息,根路径的页面也需要你自己设置一下
    (r'^/$', your_homepage_view)

    当在路径匹配的正则表达式中使用括号,就意味着可以向view函数传入额外的参数。
    (r'^/puls/(d{1,3})$', your_homepage_view)
    def your_homepage_view(request, offset):
    #offset就是匹配的d{1,3}的字符串。

    二、第一个django程序
    1. 创建一个django工程
    django-admin.py startproject helloworld
    目前windows下我只发现用这样的命令可以成功创建project。。。这样就会在当前目录下创建一个helloworld工程文件夹。


    2. 创建views.py文件
    在工程文件夹根目录创建views.py文件,其实任意文件名都可以,使用views是为了遵循传统。
    在里面输入:
    from django.http import HttpResponse

    #所有的views函数都需要以request对象作为第一个参数
    #它是请求类HttpRequest对象,包含了用户的请求信息。
    #可以以http代码为参数进行初始化
    def hello(request):
    #返回HttpResponse对象
    return HttpResponse("<html><body><h1>Hello world</h1></body></html>")

    3. 在工程文件夹中自动生成的urls.py中配置路径
    需要加入两行
    from views import hello

    urlpatterns = patterns('',
    url(r'^hello/$', hello), #记得输入这个逗号
    )

    4. 启动服务器,并在浏览器中查看结果
    在工程文件夹根目录下输入命令
    python manage.py runserver
    启动服务器

    并在浏览器中输入网址http://localhost:8000/hello/


    三、模板使用
    模板基本由两个部分组成,一是HTML代码,二是逻辑控制代码。
    逻辑控制的实现又基本由三个部分组成:
    1. 变量的使用
    {{ person_name }} #使用双大括号来引用变量
    2. tag的使用
    {% if ordered_warranty %} #使用大括号和百分号的组成来表示使用Django提供的
    template tag
    {% for item in item_list %}
    <li>{{ item }}</li>
    {% endfor %}

    使用python manage.py shell启动python交互式命令行窗口与一般直接启动python自带的
    交互式命令行窗口的区别是前者会通过找一个DJANGO_SETTINGS_MODULE环境变量,
    告诉Django导入settings.py的配置信息。

    template inheritance.
    首先,创建base.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html lang="en">
    <head>
    <title>{% block title %}{% endblock %}</title>
    </head>
    <body>
    <h1>My helpful timestamp site</h1>
    {% block content %}{% endblock %}
    {% block footer %}
    <hr>
    <p>Thanks for visiting my site.</p>
    {% endblock %}
    </body>
    </html>

    我们使用一个新的tag,{% block %}用来告诉template engine,这个部分会被子模板
    来实现。如果子模板没有实现这些部分,就会默认使用父模板的代码。

    子模板:
    {% extends "base.html" %}

    {% block title %}The current time{% endblock %}

    {% block content %}
    <p>It is now {{ current_date }}.</p>
    {% endblock %}
    只需要先使用{% extends %}继承父模板,再把相应需要实现的部分写上所需要的内容。

    {% extends template_name %}也可以使用变量名来实现动态。
    模板继承的三层继承策略:
    1. 创建一个base.html,用来设置外观
    2. 为网站的每一个部分,创建base_SECTION.html,比如base_phote.html, base_forum.html
    3. 为每一个页面创建自己的模板。

  • 相关阅读:
    Help document of CAD Build
    NSTableView 中 NSTextField无法输入
    NSScrollView 内容显示不正常问题
    Mac 中 NSTrackingArea 鼠标移动事件捕获
    java定时任务调度框架
    uboot: initramfs image to roofs, and rootfs to initramfs image
    jfrog CLI(command line interface)
    git submodule list/clone/update
    python run javascript in ubuntu
    git blame
  • 原文地址:https://www.cnblogs.com/feiyu_Team/p/6654147.html
Copyright © 2011-2022 走看看