Django 视图与网址

1. 新建一个 project 名字为 mysite

  1. django-admin startproject mysite
  1. 如果 django-admin 不行,请用 django-admin.py
  2. 如果是在Linux是用源码安装的,或者用 pip 安装的,也是用 django-admin.py 命令

mysite 是项目名称,还有一个子目录也叫 mysite(这是 mysite 项目的配置文件)比如 settings.py, Urls 配置文件 urls.py , 部署服务器会用到的 wsgi.py 文件,__init__.py是 Python包的目录结构必须的,与调用有关。
进入项目 mysite 目录》

2. 新建一个应用(APP),名称为 learn

  1. python manage.py startapp learn

learn 是 APP 名称

把我们新定义的 APP 加到 settings.py 中的 INSTALL_APP中

修改 mysite/mysite/settings.py 文件,在里面添加 'learn'

  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'learn' # 这个是后加的
  9. ]

备注,这一步是干什么呢?

新建的 APP 如果不加到 INSTALL_AP 中的话,DJANGO 就不能自动找到 APP 中的模板文件(app_name/templates/ 下面的文件)和静态文件 (app_name/static/中的文件)

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

修改为以下内容

  1. #coding:utf-8
  2. from django.http import HttpResponse
  3. def index(request):
  4. return HttpResponse(u" 欢迎光临 自强血糖!")

第一行声明编码为 utf-8,因为代码会用到中文,不声明就会报错。
第二行 引入 HttpResponse, 它是用来向网页返回内容的,就像 python 里面的 print 一样,只不过 HttpResponse 是把内容显示到网页上。
def index() 函数,第一个参数必须是 request, 与网页发来的请求有关,request 变量里包含 post 或者 get 的内容,用户浏览器,系统等信息在里面。

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

打开 mysite/mysite/urls.py,修改其中的代码为。

  1. from django.contrib import admin
  2. from learn import views as learn_views # 新加的
  3. urlpatterns = [
  4. url(r'^$', learn_views.index), # 新加的
  5. url(r'^admin/', admin.site.urls),
  6. ]

开启服务

  1. python manage.py runserver

我们打开浏览器,访问 http://127.0.0.1:8000/
就可以看到刚刚在 views.py 里面写的字了。
2017082915040008076127.png