参考中国大学MOOC课程(北理工老师 嵩天)
Django理解:
Django是一个Web框架https://docs.djangoproject.com/en/2.0/
浏览器和Web服务器之间采用HTTP协议传送信息,WSGI是Web服务器的接口,可以获取HTTP请求报文中的URLs,Web框架中的路由功能通过URLs将请求定位到文件中的代码函数块。WSGI将代码执行的结果加入到HTTP响应报文中,回送到浏览器展示给用户。
1.django-admin
是一个Django框架全局的管理工具:
• 建立并管理Django工程
• 建立并管理Django工程使用的数据库
• 控制调试或日志信息
• 运行并维护Django工程
命令格式:\>django-admin
在命令行中使用命令: django-admin startproject mysite
在PythonProject目录中创建如下文件目录结构:
mysite/ ——————————外层目录,名字可修改
mysite/ ————————工程目录,保存代码和文件
__init__.py —————将mysite定义为包的空文件
settings.py —————部署和配置整个工程的配置文件
urls.py ———————URL路由的声明文件(路由文件)
wsgi.py ——————基于WSGI的Web服务器配置文件,一般不必修改
manage.py ———————与Django工程进行交互的命令工具
from django.http import HttpResponse
def hello(request):
return HttpResponse('Hello')
3.修改URL路由
from django.contrib import admin
from django.urls import path
from helloapp import views
urlpatterns = [
# URL 处理函数
path('index/', views.hello),
path('admin/', admin.site.urls),
]
在命令行中定位mysite目录,输入命令:python manage.py runserver
会显示Web服务器地址为:http://localhost:8000/
runserver为manage.py的一个子工具,可以启动Web服务器进行调试,将我们开发的功能展示出来
在浏览器中输入一下url: http://localhost:8000/index
hello Django
my learning
(3)修改hello2app/views.py文件,使用hello.html为返回页面
from django.shortcuts import render
def hello(request):
# render是一个打包函数,第一个参数为请求,第二个参数为页面
# hello.html文件不需要指定所在目录,因为后序的配置文件(settings.py)会配置模板文件目录
return render(request, 'hello.html')
from django.urls import path
# .代表当前app
from . import views
urlpatterns = [
path('', views.hello)
]
(5)在全局路由文件(mysite/urls.py)增加对局部路由文件(hello2app/urls.py)的引用
from django.contrib import admin
from django.urls import include, path
from helloapp import views
urlpatterns = [
# include函数用于引进其他路由文件
path('index2/', include('hello2app.urls')),
path('index/', views.hello),
path('admin/', admin.site.urls),
]
(6)在配置文件(mysite/settings.py)中配置模板目录(hello2app/templates)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 修改'DIRS',BASE_DIR为当前工程主路径
'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',
],
},
},
]
(7)运行框架,进入http://localhost:8000/index2/查看运行结果