Django

之前学过Scrapy框架,所以这里感觉学习方法类似的

简介

Django本身基于MVC模型(Model+View+Controller)设计,MVC模式使后续对程序的修改和扩展简化,并且是程序某一部分的重复利用成为可能。Django是特殊的MVC模型MTV

Python+Django是快速开发,设计,部署网站的最佳组合

MVC模式:

  • 模型(Model)编写程序应有的功能,负责业务对象与数据库的映射
  • 视图(View)图形界面,负责与用户的交互(页面)
  • 控制器(Controller)负责转发请求,对请求进行处理

image-20210410040112197image-20210410040112197

MTV模型:

  • 模板(Model)编写程序应有的功能,负责业务对象与数据库的映射
  • 模板(Template)复制如何把页面(html)展示给用户
  • 视图(View)负责业务逻辑,并且再适当的时候调用M与T
  • 另外还需要一个URL分发器,用于讲页面请求分发给不同的View处理

image-20210410040440309image-20210410040440309

文件目录

__init__.py : 一个空文件,告诉Python该目录是一个Python包

asgi.py: 一个ASGI兼容的web服务器的入口,便于运行你的项目

settings.py: 该Django项目的设置与配置

urls.py: 该Django项目的URL声明,一份由Django驱动的网站”目录“

wsgi.py: 一个WSGI兼容的Web服务器的入口,便于 运行项目

manage.py: 一个实用的命令行工具,让我们可以使用各种方式与Django交互

基本命令

创建项目:django-admin startproject project_name

创建APP(进入工程目录):python manage.py app_name

创建库表(进入工程目录):python manage.py makemigrations

执行库表创建(进入工程目录):python manage.py migrate

运行程序:python manage.py runserver 127.0.0.1:8000

模板渲染嵌入语法:HTML可以嵌入后来语言 {%命令%} {{变量}}

简单例子

一个简单的计算功能

image-20210410194555521image-20210410194555521

image-20210410194604177image-20210410194604177

# views.py
# HTML文件放在templates文件夹
def index(request):
      return render(request, 'index.html')

def Add(request):
      return render(request, 'add.html') 

def Cal(request):
      a = request.POST['valueA']
      b = request.POST['valueB']
      re = int(a)+int(b)
      return render(request, 're.html', context={'data': re})
# urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from APP import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',views.index),
    path('add/',views.Add),
    path('result',views.Cal),
]

settings.py文件配置

image-20210410194105998image-20210410194105998

image-20210410194120801image-20210410194120801

设置语言和时间

add.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>加法</title>
</head>
<body>
<form method="POST" action="/result">
    {% csrf_token %}  //添加这个是为了防止出现下面的错误
    第一个数<input type="number" name="valueA">
    +
    第二个数<input type="number" name="valueB">
    <input type="submit" value="提交">
</form>
</body>
</html>

image-20210410194814986image-20210410194814986

re.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>结果</title>
</head>
<body>
<h1>结果是</h1><h2>{{ data }}</h2>
</body>
</html>
最后修改于:2021年04月10日 19:53

添加新评论