zoukankan      html  css  js  c++  java
  • Django学习 初步介绍篇 安装与Hello World

           最近需要对Openstack的Dashboard做改动,所以需要学习python以及python的web框架Django。python学习过基础知识,但也是止于稍微了解的层次了。现在正好趁这个机会,夯实一下。刚看了一点点初步的东西,搜集一下资料,积累一下。

           开发环境:Ubuntu12.04

      

          一     首先是找到学习的资料,以及初步的介绍:

            A:学习资料推荐:The Django Book1    The Django Book 2,可以说非常好到讲解了一切,其实完全可以和英文版的参考对比着看:The Django Book

            B:然后找到了第一篇Helloworld文章,非常好到让自己有一个初步印象http://www.yucoat.com/category/python

               

           Django教程一:安装与hello World

                      

    安装

    首先去https://www.djangoproject.com/download/下载最新版Django,博主在发表这篇日志的时候最新版的Django是1.4.1

    解压安装包得到django-1.4.1/目录,进入该目录,执行:

    sudo python setup.py install

    在安装新版之前,一定要先卸载旧版的Django。

    一个hello world页面

    在终端内执行:

    django-admin.py startproject PROJECT_NAME

    其中PROJECT_NAME是项目的名称,这里假设项目的名称是Blog
    那么可以得到这样的一个目录树:

    Blog/
    |____ manager.py
    |____ Blog/
        |____ urls.py
        |____ wsgi.py
        |____ __init__.py
        |____ settings.py

    manager.py是开发过程中要常常使用的文件,顾名思义,就是用来管理的文件,比如创建app,运行shell,运行Django内置的web服务器等等
    url.py文件是Django URL的配置文件,至于当用户访问www.example/post/1254/时,Django会根据url.py的内容来判断这个URL由试图(views)中那个函数来处理
    __init__.py这个文件是空的,python的包都会有一个__init__.py文件。
    wsgi.pywsgi是Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口。

    第一个hello world

    编辑urls.py文件,在urlpatterns = patterns(”,前面加入以下代码:

    from django.http import HttpResponse
    def hello(request):
        return HttpResponse('hello, world!')


    然后在patterns(”,中加入:

    url(r'^/$', hello),
    正则表达式字符串的开头字母“r”。 它告诉Python这是个原始字符串,不需要处理里面的反斜杠

    整个urls.py现在看起来是:

    from django.conf.urls import patterns, include, url
    
    # Uncomment the next two lines to enable the admin:
    # from django.contrib import admin
    # admin.autodiscover()
    from django.http import HttpResponse
    def hello(request):
        return HttpResponse('hello, world')
    
    urlpatterns = patterns('', 
        # Examples:
        # url(r'^$', 'Blog.views.home', name='home'),
        # url(r'^Blog/', include('Blog.foo.urls')),
    
        # Uncomment the admin/doc line below to enable admin documentation:
        # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    
        # Uncomment the next line to enable the admin:
        # url(r'^admin/', include(admin.site.urls)),
        url(r'^$', hello),
    )
     


    然后将它保存,创建项目的时候不是有有一个manager.py吗?执行这个文件:

    ./manager runserver

    然后在浏览器中输入http://127.0.0.1:8000/ 就可以看到hello world了

    这里涉及到一个知识点:在python用import或者from...import来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了



    然后,看The Django Book看到第三章的时候,要写视图函数,新建为iew.py,里面内容如下:

    from django.http import HttpResponse  
    import datetime
    def hello(request):
        return HttpResponse("Hello world")
    
    def current_datetime(request):
        now = datetime.datetime.now()
        html = "<html><body>It is now %s.</boday></html>" % now
        return HttpResponse(html)
    


    在url.py里面,自己当时出错的是导入view模块的时候:直接写
    import view就可以了。

    也就是说python中的模块其实就像是java中的类。url中代码如下:

    from django.conf.urls import patterns, include, url
    import view
    # Uncomment the next two lines to enable the admin:
    # from django.contrib import admin
    # admin.autodiscover()
    
    urlpatterns = patterns('',
        # Examples:
        # url(r'^$', 'Blog.views.home', name='home'),
        # url(r'^Blog/', include('Blog.foo.urls')),
    
        # Uncomment the admin/doc line below to enable admin documentation:
        # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    
        # Uncomment the next line to enable the admin:
        # url(r'^admin/', include(admin.site.urls)),
        url(r'^$',view.hello),
        url('^time/$', view.current_datetime),
    )
    


    再往下做动态url时候注意要import进来新的视图函数

  • 相关阅读:
    English 2
    速算24点
    心理学1
    从微服务到函数式编程
    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述
    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结
    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题
    031 01 Android 零基础入门 01 Java基础语法 03 Java运算符 11 运算符的优先级
    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符
    029 01 Android 零基础入门 01 Java基础语法 03 Java运算符 09 逻辑“非”运算符
  • 原文地址:https://www.cnblogs.com/allenzhaox/p/3201772.html
Copyright © 2011-2022 走看看