Django学习
1、创建一个项目:
django-admin.py startproject mysite
创建完之后会生成以下目录:
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
- HelloWorld: 项目的容器。
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
- init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
- settings.py: 该 Django 项目的设置/配置。
- urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
- wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
2、新建一个应用(app)
python manage.py startapp learn # learn 是一个app的名称
新建后mysite中多了一个learn文件夹,有以下文件
learn/
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.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',
)
这一步的目的是,使django自动找到app中的模板文件(app-name/templates/下的文件)和静态文件(app-name/static/中的文件)
定义视图函数(访问页面时的内容)
修改views.py中的内容,改成如下代码
#coding:utf-8
from django.http import HttpResponse
def index(request):
return HttpResponse(u"欢迎光临 自强学堂!")
第一行是声明编码为utf-8, 因为我们在代码中用到了中文,如果不声明就报错。
第二行引入HttpResponse,用来向网页返回内容的,是把内容显示到网页上。
定义了一个index()函数,第一个参数必须是 request
函数返回了一个 HttpResponse 对象,可以经过一些处理,最终显示几个字到网页上。
定义视图函数相关的URL(网址) 即规定访问什么网址对应社么内容。
修改 /mysite/mysite/urls.py中的代码
Django 1.8及以上
from django.conf.urls import url
from django.contrib import admin
from learn import views as learn_views # new
urlpatterns = [
url(r'^$', learn_views.index), # new
url(r'^admin/', admin.site.urls),
]
在终端运行python manage.py runserver 会看到如下信息:
$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
December 22, 2015 - 11:57:33
Django version 1.9, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
在使用浏览器访问前需先修改 settings.py文件,否则不能访问
会报如下错误:
Invalid HTTP_HOST header: '*.*.*.*:8000'. You may need to add u'*.*.*.*' to ALLOWED_HOSTS.
修改以下内容:
vim mysite/settings.py
ALLOWED_HOSTS = ['*.*.*.*','*.*.*.*']
‘*’为使用主机的ip和搭建Django项目的主机ip
打开浏览器,访问http://ip:8000/