文章目录
步骤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',
],
},
},
]