python web框架Django学习(三)视图预url

来源:互联网 发布:辽宁省软件行业协会 编辑:程序博客网 时间:2024/05/29 03:03

学习地址:http://code.ziqiangxuetang.com/django/django-tutorial.html


该文章为学习记录,请勿转载,如需具体资料请查看“自强学堂的教程


一,新建一个项目(project), 名称为 mysite

django-admin startproject mysite

运行后,如果成功的话, 我们会看到如下的目录样式  

mysite
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py

    └── wsgi.py

我们会发现执行命令后,新建了一个 mysite 目录,其中还有一个 mysite 目录,这个子目录 mysite 中是一些项目的设置 settings.py 文件,总的urls配置文件 urls.py 以及部署服务器时用到的 wsgi.py 文件, __init__.py 是python包的目录结构必须的,与调用有关。


二, 新建一个应用(app), 名称叫 learn

python manage.py startapp learn # learn 是一个app的名称

我们可以看到mysite中多个一个 learn 文件夹,其中有以下文件

learn/
├── __init__.py
├── admin.py
├── models.py
├── tests.py

└── views.py


注:Django 1.8.x 以上的,还有一个 migrations 文件夹。Django 1.9.x 还会在 Django 1.8 的基础上多出一个 apps.py 文件

把我们新定义的app加到settings.py中的INSTALL_APPS中

修改 mysite/mysite/settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
 
    'learn',
)

注:新建的 app 如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)

定义视图函数(访问页面时的内容)

在learn这个目录中,把views.py打开,修改其中的源代码,改成下面的

#coding:utf-8

from django.http import HttpResponse

 
def index(request):
    return HttpResponse(u"欢迎光临 自强学堂!")

# HttpResponse,它是用来向网页返回内容的,就像Python中的 print 一样,只不过 HttpResponse 是把内容显示到网页上。

定义视图函数相关的URL(网址)  (即规定 访问什么网址对应什么内容)

我们打开 mysite/mysite/urls.py 这个文件, 修改其中的代码:

from django.conf.urls import patterns, include, url
 
from django.contrib import admin
admin.autodiscover()
 
urlpatterns = patterns('',
    url(r'^$', 'learn.views.index'),  # new
    # url(r'^blog/', include('blog.urls')),
 
    url(r'^admin/', include(admin.site.urls)),

)


URL name介绍

1. 打开 urls.py

from django.conf.urls import url
from django.contrib import admin
from calc import views as calc_views
 
urlpatterns = [
    url(r'^add/$', calc_views.add, name='add'),
    url(r'^add/(\d+)/(\d+)/$', calc_views.add2, name='add2'),
    url(r'^admin/', admin.site.urls),
]

简单说,name 可以用于在 templates, models, views ……中得到对应的网址,相当于“给网址取了个名字”,只要这个名字不变,网址变了也能通过名字获取到。


原创粉丝点击