• django简介


    1.django概念

      Python语言写的开源web开发框架

    1.1 MVC模型(model,views,controller)  #  java使用mvc模型

      它们之间以一种插件式的,松耦合的方式连接在一起,model负责业务对象与数据库的映射,views负责与用户交互,即页面,控制器接受用户的输入并调用模型和视图完成用户的请求

    基本关系如图

    1.2 MTV模型(module,template模板,view)      # django使用MTV模型

      django的MTV模式本质和MVC相同,只是定义上存在差别

      M:负责业务对象和数据库的关系映射(ORM)。

      T :负责如何把页面展示给用户(html)。

      V : 负责业务逻辑(执行相关函数),如果与数据发生交互,则去调用Model。如果没有,则直接将要展示的数据返回给Template。

      此外,Django还有一个URL分发器。它的作用是将一个个URL的页面请求分别发给不同的Views处理,Views再调用相应的Model和Template。

    响应模式如图

      用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

    2.django安装

    cmd下

    pip3 install django

    查看版本

    python -m django --version

    3.django项目搭建

      对于第一次使用Django,需要先进行初始设置,让他自动生成一些代码来建立Django项目,注意路径,这里我放在了G盘,在终端G盘下运行如下代码

    django-admin startproject mysite

    此时查看startproject创建的内容:

    文件解释

    mysite/			根目录,项目容器,可任意命名,根目录下的就是项目,它是一个纯Python包,根据包名可以引用内部的任何东西
    
    manage.py/		管理Django项目的命令行工具
    
    mysite/.__init__.py	一个空文件,告诉Python这个目录应该被认为是一个Python包
    mysite/setting.py	Django项目的配置文件
    mysite/urls.py		Django项目的URL声明
    mysite/wsgi.py		项目的运行在wsgi兼容的web服务器上的入口
    

    mysite目录下,运行如下命令(在终端下执行Python文件manage.py,启动这个入口文件),启动Django自带的用于开发的简易服务器 

    Python manage.py runserver

    在浏览器访问 http://127.0.0.1:8000/。你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了(注意是http不是https)

    注意:默认情况下runserver命令会将服务器设置为监听本机内部IP8000端口,如果想更换端口,如8080,在终端只需这样输入:

    python manage.py runserver 8080

    如果想监听所有服务器公开的IP,使用:

    python manage.py runserver 0:8000

      以上django的创建,在Python中也可以直接一步生成,这里就不介绍了

    4.mysite目录下创建应用

    在manage.py目录下创建应用程序,在同目录下运行:

    python manage.py startapp polls

    创建一个目录pools,布局如下

    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py

     5.基于django实现登录认证

      要实现该应用,我们需要在框架下的setting文件内,将MIDDLEWARE下的''django.middleware.csrf.CsrfViewMiddleware'提前注掉,否则会出现403报错信息,这个的意义我后面文章有说明。另外,这里我们还需在mysite下创建templates文件,用于存放HTML标签

    5.1url控制器

    from django.contrib import admin
    from django.urls import path
    from app import views
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('login/', views.login),
    ]

    5.2view视图

    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    
    # Create your views here.
    def login(request):
        if request.method == "POST":
            user = request.POST.get("user")
            pwd = request.POST.get("pwd")
            print(user,pwd)    # 在控制面板获取用户信息
    
            if user=="bob" and pwd=="123":
                return HttpResponse("登陆成功")
            else:
                return render(request, "login.html")
        else:
            return render(request, "login.html")

    5.3templates模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {#注意这里内容必须要放在form表单里,否则无法实现跳转#}
    <form action="/login/" method="post">    
         姓名:<input type="text" name="user">
        密码:<input type="password" name="pwd">
        <input type="submit">
    </form>
    </body>
    </html>

    在终端运行python manage.py runserver,此时在浏览器输入127.0.0.1:8000/login/,效果如下

    输入正确登录名和密码后,会自动实现跳转功能

  • 相关阅读:
    Nginx 源码分析 ngx_string 的一些简单分析
    Nginx 源码分析 浅谈对模块module 的基本认知
    BP神经网络 C语言实现 下
    Quorum 机制
    TensorFlow.NET机器学习入门【9】后记
    WPF优秀组件推荐之Stylet(一)
    WPF优秀组件推荐之Stylet(二)
    WPF优秀组件推荐之FreeSpire
    WPF优秀组件推荐之LiveCharts
    WPF优秀组件推荐之MahApps
  • 原文地址:https://www.cnblogs.com/LearningOnline/p/9206146.html
Copyright © 2020-2023  润新知