[Django系列]1.Django的创建应用,二级路由,地址传参

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 #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 #创建一个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 #导入HttpResponse模块# Create your views here.
def bookname(request,name): #定义一个函数bookname,从前端传入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),  #用一个参数(?P<name>\w+)来接收地址栏中传入的书名
]

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 #导入include模块
from django.contrib import adminurlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^book/', include('books.urls')), #将book/目录后面的路由指向books下面的urls对象,记得加引号
]
#小扩展 也可以从这种别名的方式,导入二级路由引用
from django.conf.urls import url,include #导入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等应用,便不再重复.

赞(0)
未经允许不得转载:http://www.yueguangzu.net逗逗网 » [Django系列]1.Django的创建应用,二级路由,地址传参
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    666

    小帆2年前 (2017-08-09)回复