安装Django 2.0+
win
安装python(废话)
配置好python环境变后命令行输入(当然如果没有安装pip还要安装pip):
pip install django
linux
一般linux,python2/python3共存,我们用python3
pip3 install django
安装完成后我们来创建第一个项目HelloWorld,命令行输入:
django-admin startproject HelloWorld
一个网站可能有很多的子模块子网站,我们为每个模块创建一个app 来划分每个模块的功能和它的业务逻辑,下面我们创建第一个app。先进入我们刚刚创建HelloWorld项目目录下,我是在桌面创建的项目所以:
cd Desktop\HelloWorld
然后创建app:
python manage.py startapp firstapp
这个时候我们的目录结构是这个样子的
|-- HelloWorld
| | -- templates
| | -- firstapp
| | |--migrations
| | | |--__init__.py
| | |--__init__.py
| | |--admin.py
| | |--apps.py
| | |--modles.py
| | |--tests.py
| | |--views.py
| | -- HelloWorld
| | |-- __init__.py
| | |-- settings.py
| | |-- urls.py
| | |-- wsgi.py
| | -- manage.py
那么下面我们先实现一个 HelloWorld 吧。
首先在模板文件夹templates中新建模板index.html,
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1> Hello World ! </h1>
</body>
</html>
接着我们需要在views.py写一个函数来读取模板文件并返还给用户。按上篇文章的方法应该是这样的:
def handle_index():
f=open('View/index.html',mode='rb')
data = f.read()
f.close()
return [data,]
但是现在我们不需要写代码去读取这个模板,Django已经帮我们封装好了这个功能,我们只需要调用这个函数就可以了
views.py
from django.shortcuts import render
#这里render就是Django帮我们写好的函数
def logo(request):
return render(request,'index.html')
但是仅仅这么做的话很明显是不行的,因为Django根本不知道你的模板文件放在哪里,所以我们要告诉Django,我们的模板文件放在哪里。
打开settings.py,找到 INSTALLED_APPS ,在 INSTALLED_APPS 添加我们刚刚创建的app:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'firstapp',#我们刚刚创建的app,不要忘记末尾加上逗号
]
然后在往下找到 TEMPLATES ,TEMPLATES 这里要注意一下 。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
在 TEMPLATES中:
'DIRS': [os.path.join(BASE_DIR, 'templates')]
表示 模板文件存放在该项目根目录中的 templates 文件夹中。如果你的模板文件放在你其他位置要在这个地方重新设置。比如:你在刚刚创建的的app中新建了一个文件夹叫templates ,你的模板文件放在这个templates 文件夹中,应该这样设置:
'DIRS': [os.path.join(BASE_DIR, 'firstapp/templates')]
最后,我们要让Django知道用户访问哪个url是返回 Hello World ,也就是配置路由。
打开HelloWorld
下的urls.py文件:
urls.py
from firstapp import views#导入firstapp中的views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.logo),#在views中找到我们写好的logo函数
]
这样我们的这个项目就算完成了,下面我们来测试一下。
python manage.py runserver
如果python2/3兼容则:
python3 manage.py runserver
这里默认 host = “127.0.0.1” ,port = 8000,所以在浏览器输入:http://127.0.0.1:8000/ 就可以了
如果要指定其他host 或者port 则:
python manage.py runserver host:host
例如:
python manage.py runserver 127.0.0.1:8001
#这里浏览器输入:http://127.0.0.1:8001/
如果想在服务器上运行则需要先关闭服务器的防火墙,然后这里改为:
python3 manage.py runserver 0.0.0.0:8000
#一般linux都是同时装有python2、python3的
然后,用服务器的ip代替 127.0.0.1,输入浏览器就可以了。例如你的服务器ip是103.117.139.88,则在浏览器输入http://103.117.139.88:8000 就可以了。