1django 视图与网址

创建一个项目,名字叫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包的目录结构必须的,与调用有关。

我们到最外层mysite目录下,新建一个应用叫learn

python manage.py startapp learn

可以看到mysite中多了一个文件夹learn,django1.9以上的版本还多了一个migration文件夹和apps文件

把我们新定义的app加到settings.py的install_apps中,加在最后比较好

这一步是干什么的呢,新建的app如果不加到install_apps中的话,django就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件) ,这个很关键

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

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

#coding:utf8
from django.http import HttpResponse

def index(request):
    return HttpResponse(u'欢迎光临我的博客园')

第一行声明编码为utf8,因为我们在代码中用到了中文,如果不声明就会报错

第二行引入HttpResponse,它是用来想网页返回内容的,就像python中的print一样,只不过HttpResponse把内容显示到网页上

我们定义了一个index()函数,第一个参数必须是request,与网页发来的请求有关,request变量里包含get和post的内容,用户浏览器,系统等信息在里面

函数返回了一个HttpResponse对象,可以经过一些处理,最终显示内容到网页上

那么问题来了,我们访问什么网址才能看到刚才写的这个函数呢?怎么让网址和函数关联起来呢

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

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

from django.con.urls import url
from django.contrib import admin
from learn import views as learn_views

urlpatterns=[
    url(r'^$',learn_views.index),
    url(r'^admin/',admin.site.urls),    
]

以上都修改并保存后,在终端运行python manage.py runserver

http://127.0.0.1:8000/

如果是在另一台电脑上访问要用python manage.py ip:port的形式,比如监听所有ip

python manage.py runserver 0.0.0.0:8000

监听机器上所有ip 8000端口,访问时用电脑的ip代替127.0.0.1

原文地址:https://www.cnblogs.com/z-x-y/p/9660939.html