Django 视图与网址
1. 新建一个 project 名字为 mysite
django-admin startproject mysite
- 如果 django-admin 不行,请用 django-admin.py
- 如果是在Linux是用源码安装的,或者用 pip 安装的,也是用 django-admin.py 命令
mysite 是项目名称,还有一个子目录也叫 mysite(这是 mysite 项目的配置文件)比如 settings.py
, Urls 配置文件 urls.py
, 部署服务器会用到的 wsgi.py
文件,__init__.py
是 Python包的目录结构必须的,与调用有关。
进入项目 mysite 目录》
2. 新建一个应用(APP),名称为 learn
python manage.py startapp learn
learn 是 APP 名称
把我们新定义的 APP 加到 settings.py 中的 INSTALL_APP中
修改 mysite/mysite/settings.py
文件,在里面添加 'learn'
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'learn' # 这个是后加的
]
备注,这一步是干什么呢?
新建的 APP 如果不加到 INSTALL_AP 中的话,DJANGO 就不能自动找到 APP 中的模板文件(app_name/templates/ 下面的文件)和静态文件 (app_name/static/中的文件)
定义视图views函数(访问页面时的内容)
修改为以下内容
#coding:utf-8
from django.http import HttpResponse
def index(request):
return HttpResponse(u" 欢迎光临 自强血糖!")
第一行声明编码为 utf-8,因为代码会用到中文,不声明就会报错。
第二行 引入 HttpResponse, 它是用来向网页返回内容的,就像 python 里面的 print 一样,只不过 HttpResponse 是把内容显示到网页上。def index()
函数,第一个参数必须是 request, 与网页发来的请求有关,request 变量里包含 post 或者 get 的内容,用户浏览器,系统等信息在里面。
定义视图函数的相关 URL,即规定 访问什么网址对应什么内容
打开 mysite/mysite/urls.py
,修改其中的代码为。
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/
就可以看到刚刚在 views.py 里面写的字了。