django框架的最小程序及其改进

@[toc]

步骤1:新建一个web框架工程

django-admin startproject mysite

步骤2:修改工程,增加功能

步骤2.1 创建一个具体应用(app)
python manage.py startapp helloapp

工程(project)和应用(app)的关系

  • 工程对应于一个网站,是配置和应用的集合
  • 应用对应于特定功能,是具体功能的载体
  • 配置和功能分离是高度模块化的体现
步骤2.2 修改应用的views.py

views.py中包含对某个HTTP请求url的响应

#mysite/helloapp/migrations/views/py
from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello World! I am coming……")
步骤2.3 修改URL路由

在urls.py中指定URL与处理函数之间的路径关系

#mysite/mysite/urls.py
from django.contrib import admin
from django.urls import path
from helloapp import views

urlspatterns = [
    path('index/',views.hello),
    path('admin/',admin.site.urls),
]

步骤3:调试运行web框架(在mysite工程目录下)

python manage.py runserver

django-admin

一个Django框架全局的管理工具:

  • 建立并管理Django工程
  • 建立并管理Django工程所用的数据库
  • 控制调试或日志信息
  • 运行并维护Django工程

manage.py

与django-admin类似,但只针对当前项目

Django最小程序的改进

需求:返回一个HTML页面,而不是一个字符串
思路:建立模板(T),对应特定请求,返回模板页面。
新建hello2app,通过index2来访问。

步骤2.1 新建hello2app应用
python manage.py startapp hello2app
步骤2.2 使用htmldemo.html为返回页面,修改views.py
#hello2app/views.py
from django.shortcuts import render

# Create your views here.
def hello(request):
    return render(request,"htmldemo.html")

render()是一个打包函数,第一个参数是request,第二个参数是页面。

步骤2.3 在hello2app应用中,新增urls.py文件(本地路由文件)
#hello2app/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('',views.hello)
]
步骤2.4 在全局路由文件中增加对本应用路由文件的引用
#mysite/urls.py
from django import urls
from django.contrib import admin
from django.urls import include,path
from helloapp import views

urlpatterns = [
    path('index2/',include('hello2app.urls')),
    path('index/',views.hello),
    path('admin/', admin.site.urls),
]

include()函数,将hello2app的局部路由增加到全局路由中。

步骤2.5 设置模板路径,让Django框架找到模板所在目录
#setting.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'hello2app/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',
            ],
        },
    },
]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容