python Django框架

参考中国大学MOOC课程(北理工老师 嵩天)

Django理解:

Django是一个Web框架
• Django是一个产品级框架,支撑全球近万个网站及云端
• 采用MTV(Model-Template-View)模型组织
• 相比其他框架,Django充分利用Python特点,开发效率更高
• Django框架的官方文档:

https://docs.djangoproject.com/en/2.0/

python Django框架_第1张图片

浏览器和Web服务器之间采用HTTP协议传送信息,WSGI是Web服务器的接口,可以获取HTTP请求报文中的URLs,Web框架中的路由功能通过URLs将请求定位到文件中的代码函数块。WSGI将代码执行的结果加入到HTTP响应报文中,回送到浏览器展示给用户。

Django框架的管理

1.django-admin

是一个Django框架全局的管理工具:
• 建立并管理Django工程
• 建立并管理Django工程使用的数据库
• 控制调试或日志信息
• 运行并维护Django工程

命令格式:\>django-admin  [options] 

更多命令:\>django-admin help

2.manage.py
与django-admin类似,但仅针对当前项目
命令格式:\>python manage.py [options]
更多功能:\>python manage.py helpn help

3.直接对django进行管理
\>python –m django [options]

创建一个Django框架程序

一.创建一个Web框架工程

在命令行中使用命令: django-admin startproject mysite


在PythonProject目录中创建如下文件目录结构:

mysite/     ——————————外层目录,名字可修改
       mysite/  ————————工程目录,保存代码和文件
              __init__.py —————将mysite定义为包的空文件
             settings.py —————部署和配置整个工程的配置文件
             urls.py ———————URL路由的声明文件(路由文件)
             wsgi.py ——————基于WSGI的Web服务器配置文件,一般不必修改
       manage.py ———————与Django工程进行交互的命令工具

二.修改工程,增加功能

1.创建一个具体的应用
在目录中创建应用,用来实现功能,命令:python manage.py startapp helloapp

目录如下:
python Django框架_第2张图片
2.修改应用的views.py
该文件包含对HTTP请求(url)的响应
from django.http import HttpResponse


def hello(request):
    return HttpResponse('Hello')
3.修改URL路由
在urls.py文件中指定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),
]

三.调试运行Web框架(在mysite工程目录下)

在命令行中定位mysite目录,输入命令:python manage.py runserver

会显示Web服务器地址为:http://localhost:8000/

runserver为manage.py的一个子工具,可以启动Web服务器进行调试,将我们开发的功能展示出来

在浏览器中输入一下url: http://localhost:8000/index

python Django框架_第3张图片

MTV模式

python Django框架_第4张图片
分别对应:数据、处理和样式
Web框架中的解剖图:
python Django框架_第5张图片
如下图,在一个app中,models.py针对app的模型(M),views.py针对app的视图(V),而模板(T)并不默认生成,只能手动创建,里面存放html,css,js等模板文件
python Django框架_第6张图片

在上述工程中新建hello2app应用,并响应一个HTML页面
(1)新建hello2app工程, python manage.py startapp hello2app
(2)在hello2app目录中,创建templates目录,用于存放要返回的HTML文件(hello.html)

    
        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')
(4)在hello2app中新建本地路由文件urls.py文件
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/查看运行结果








你可能感兴趣的:(Web开发)