Django是重量级的Python框架.使用Django可以快速的开发web站点.Django采用MTV架构!(models-templates-views)
sudo apt install django
1.使用以上命令,就能快速的在Ubuntu系统上安装django软件以及依赖包,为了保证Django是最新的版本,需要使用pip,更新到最新的1.14
sudo pip install django
2.使用Django,需要新建一个项目
django-admin startproject day01
3.该指令可以同时应用于windows cmd,或者linux,下面以linux为例子
新建的项目day01下面包含一个manage.py和一个同名为day01的目录,目录下面包含settings.py,urls.py,wsgi.py
tree day01/
day01/
├── day01
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
此刻最简单的项目就已经搭建好了,为了测试django的搭建是否正常,使用如下命令就可以启动django服务.并且可以直接使用浏览器http://127.0.0.1:8000访问
python manage.py runserver 0.0.0.0:8000
4.如果,你需要增加一个应用到django的项目里,使用下面的命令即可
cd day01
django-admin startapp books
此时的目录结构变为
tree ../day01/
../day01/
├── books
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── day01
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
django为我们创建了一个books的目录,和day01的目录平级.books下面包含了models.py,views.py等文件.
5.进入day01文件夹下面的setttings.py,把我们刚刚增加的应用,添加到installed_apps列表里去,这样django就能识别到这个应用.同时,把’*’添加到allowed_host,这样别的机器才能访问进来.
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'books',
]
django的创建顺序,通常先完成视图函数models>>views.py>>urls.py,由于本次不涉及models,直接从视图函数开始.
6.进入books文件夹下面的views.py,编写第一个视图函数bookname,这里需要实现一个功能,就是显示传入的书名的变量name,通过调用HttpResponse模块显示This is a book named 书名 在前端页面上.
cd books
ddc@SERVER:~/djcode/day01/books$ sudo vim views.py
from django.shortcuts import render,HttpResponse
def bookname(request,name):
return HttpResponse('<h1>This is a book named %s</h1>'%name)
7.然后,在books文件夹里面新建一个urls.py,这个路由是定义在books这个应用下面的,所以又叫做二级路由!
因为需要调用到当前目录下面的views文件,所以使用from . import views执行导入
在这一级路由,只需要接收传入的书名,以参数(?P<name>\w+)来接收,并传给视图函数处理.
from django.conf.urls import url
from django.contrib import admin
from . import views
urlpatterns = [
url(r'(?P<name>\w+)/$', views.bookname),
]
8.同样的,进入前面day01的目录下面,编辑里面的路由文件urls.py,这里成为一级路由
因为采用二级路由的结构,一级路由只需要传递目录信息book/即可注意,千万不可以在book/后面加$
book/后面的内容是交给books应用的urls.py处理的,所以,务必导入include模块,丢给book.urls处理.
ddc@SERVER:~/djcode/day01/day01$ sudo vim urls.py
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^book/', include('books.urls')),
]
from django.conf.urls import url,include
from django.contrib import admin
from books import urls as book_urls
urlpatterns = [
url(r'^book/', include(books_urls)),
]
9.这样,一个使用变量传参和二级路由的django项目的应用books,就定义好了,试着启动并访问
python manage.py runserver 0.0.0.0:8008
浏览器输入一下地址
http://192.168.8.88:8008/book/helloDjango/

同样的方法,我们可以增加music,movie等应用,便不再重复.

666