创建一个项目,名字叫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
如果是在另一台电脑上访问要用python manage.py ip:port的形式,比如监听所有ip
python manage.py runserver 0.0.0.0:8000
监听机器上所有ip 8000端口,访问时用电脑的ip代替127.0.0.1