• 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)),
    )

     

  • 相关阅读:
    【转】Winform窗体显示在父窗体的中间位置几种代码
    【转】图片上传
    【转】Web文件的ContentType类型大全
    【原】FileUpload控件上传文件
    【转】winform编程实现程序最小化到系统托盘代码
    【原】页面跳转以及表单提交中有中文的解决办法
    【转】asp.net弹出窗体大全
    .NET的发展及组成结构
    如何成为一个优秀的程序员?
    设计模式详细系列教程 (二) 创建型模式
  • 原文地址:https://www.cnblogs.com/dollarzhaole/p/2966798.html
Copyright © 2020-2023  润新知