zoukankan      html  css  js  c++  java
  • BAE博客开发之基础知识积累Django篇(1)

    1. Django如何新建一个网站

    python django-admin.py startproject mysite

    在mysite文件夹下会生成如下文件:

    mysite/
        manage.py
        mysite/
            settings.py
            urls.py
            __init__.py
            wsgi.py

    启动网站

    python manage.py runserver
    python manage.py runserver 8080 #修改端口号,默认的是8000
    python manage.py runserver 0.0.0.0:8000 #告诉服务器去监听任意端口

    2. Django是怎么工作的

    1. 进来的请求转入/hello/;

    2. Django通过settings.py中ROOT_URLCONF配置来获得URLconf;

    3. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目;

    4. 如果找到,调用相应的视图

    5. 视图函数会返回一个HttpResponse对象

    6. Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来

    3. Django的View

    添加网页,需要修改两个文件。一是urls.py,二是views.py。urls.py将url和view中的函数对应。views定义函数,返回httpresponse对象。

    动态URL。比如./time/plus/3/、./time/plus/4/、./time/plus/5/ ...这种,需要再urls.py中添加正则表达式来匹配这种URL,前面的URL可以用如下正则表达式表达

    (r'^time/plus/(\d{1,2})/$', hours_ahead)

    在views.py中添加hours_ahead(httprequest, offset)。注意这里offset会从匹配的URL里提取出来的。并且要转换为str。

    4. 贴出代码:

    views.py

    View Code
    # _*_ coding:utf-8 _*_
    from django.http import HttpResponse
    import datetime
    
    def hello(request):
        return HttpResponse("Hello World!")
    
    def date(request):
        return HttpResponse("<html><body>It is " + str(datetime.datetime.now()) + ".</body><html>")
    
    def hours_ahead(request, offset): #这里的offset会自动从匹配的URL中获得
        try:
            offset = int(offset)
        except ValueError:
            raise Http404()
    
        dt = datetime.datetime.now() + datetime.timedelta(hours = offset)
        html = "<html><body>In %d hour(s), it will be %s.</body></html>" % (offset, dt)
        return HttpResponse(html)

    urls.py

    View Code
    # _*_ coding:utf-8 _*_
    from django.conf.urls import patterns, include, url
    from mysite.views import *
    
    # Uncomment the next two lines to enable the admin:
    # from django.contrib import admin
    # admin.autodiscover()
    
    urlpatterns = patterns('', 
        ('^hello/$', hello),
        ('^time/$', date),
        ('^time/plus/(\d{1,2})/$', hours_ahead), #/time/plus/3/这种URL
        # Examples:
        # url(r'^$', 'mysite.views.home', name='home'),
        # url(r'^mysite/', include('mysite.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)),
    )

     

  • 相关阅读:
    World Wind Java开发之三 显示状态栏信息
    hdu 5105 Math Problem(数学)
    内存寻址一(分段)
    Fedora20上Xen的安装与部署
    北京电子地图 谷歌-百度-高清-搜狗电子地图 地图14、17、19级图片
    win8.1休眠状态下不能进入系统
    IIC读写AT24C02代码2——串口命令控制多页读写
    ColorSchemer Studio 2 破解
    基于特定领域国土GIS应用框架设计及应用
    POJ 3614 Sunscreen 优先队列 贪心
  • 原文地址:https://www.cnblogs.com/dollarzhaole/p/2966798.html
Copyright © 2011-2022 走看看