python学习笔记 Day 19 Web应用程序 - Django入门

Day 19 Django入门

  • 前言


    在这里插入图片描述


    • 要理解Django,首先要理解MVC模式:
      • M,Model,模型,用于与数据库交互的业务规则并相应View的请求而返回指定数据,通俗的说,Model以代码的形式实现了桌面数据库(如SQL Server Enterprise或Access或Oracle)中定义数据库表、根据SQL语句查询数据等功能;
      • V,View,视图响应用户(网页)的请求,从Model提取的数据,将数据填入模版并将此网页反馈给用户。
      • C,Control,控制台,接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。
    • Django也是一个MVC框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式:
      • M 代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。(参考上面对Model的定义)
      • T 代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。(白话文:模版其实就是网页框架,只不过没有数据)
      • V 代表视图(View),即以代码形式存在的业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。(白话文:View响应用户的请求,调用Model的函数获取数据,然后再调用相应的模版(由URL)指定,填写数据,形成最终的HTML文件,再返回用户显示)

  • 正式进入DJango学习

    • Django 路由系统:
      • URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。URL的加载是从配置文件中开始。
      	urlpatterns = [
      		url(正则表达式, view函数, 参数, 别名)
      	]
      	```
      

    参数说明:

        # 一个正则表达式字符串
    	# 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
    	#  可选的要传递给视图函数的默认参数(字典形式)
    	#  一个可选的name参数
    
    • 建立虚拟环境
      • 新建立一个目录用于构建Django应用:
      $ mkdir learning_log
      
      • 测试是否安装了虚拟环境
      learning_log$ python -m vent ll_env
      

    如果没有任何错误提示,直接返回命令提示状态,说明已安装,否则,需要安装虚拟环境。

    • 安装虚拟环境
    $ pip install --user virtualenv
    Collecting virtualenv
    Downloading https://files.pythonhosted.org/packages/7c/17/9b7b6cddfd255388b58c61e25b091047f6814183e1d63741c8df8dcd65a2/virtualenv-16.1.0-py2.py3-none-any.whl (1.9MB)
        100% |████████████████████████████████| 1.9MB 5.9MB/s 
    Installing collected packages: virtualenv
    The script virtualenv is installed in '/Users/******/Library/Python/3.7/bin' which is not on PATH.
    Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
    

    在windows环境下,运行:

    python -m pip install --user virtualenv
    

    提示需要将virtualenv路径添加到系统路径:

    $ sudo vim /etc/paths
    
    • 建立虚拟环境
    $ virtualenv ll_env
    
    • 激活虚拟环境
    $ source ll_env/bin/activate
    

    Windows环境下运行下面的命令激活虚拟环境:

    ll_env\Scripts\activate
    
    • 安装Django:创建并激活虚拟环境后就可以安装Django了
    $ pip install Django
    
    • 1 、创建项目,千万别忘了命令行后面的那个点“.”
      这里,“项目“的概念,就是建立一个WEB服务器。
    $ django-admin.py startproject learning_log .
    
    
    • 2、创建数据库
      这里所创建的数据库,是整个WEB服务器的数据库框架(类似于在Windows环境下,安装好IIS后(创建‘项目‘),再安装SQL Server),下文提到的“应用”所创建的数据库,就是在这个WEB服务器数据库框架中创建数据库。
    python manage.py migrate
    
    • 查看项目(启动服务器)
    python manage.py runserver
    

    打开浏览器,输入127.0.0.1/8000
    在这里插入图片描述

    • 小结:1和2两个步骤,分别建立了WEB服务器(项目)并安装好了数据库框架,现在看一下learning_log目录下的文件:
    	__init__py, settings.py, urls.py, manage.py wsgi.py
    

    其中,settings.py指定Django如何与刚刚建立好的WEB服务器交互并管理该服务器。URLS.py应该建立哪些网页响应浏览器请求(该WEB服务器下每个应用们都应该有不同的url入口)。manage.py用于项目管理,例如。新建应用程序,应用程序建立数据库等。

    • 创建应用程序
    	(ll_env)learning_log$ python manage.py startapp learning_logs
    

    创建好一个名为“learning_logs“的应用程序,这时,在learning_log目录下,多了一个文件夹learning_logs,该文件夹存储应用learning_logs的所有内容。

    • 3、定义模型
      定义模型的过程,就是建立应用程序数据库的过程。
      编辑models.py文件
    • 4、激活模型
      修改learning_logs目录中的settings.py文件,然后在终端中运行:
    (ll_env)learninglog$ python manage.py makemigrations learning_logs
    
    • 5、迁移数据库
    $ python manage.py migrate
    
    • 6、创建超级用户
    $ python manage.py createsuperuser
    
    • 7、注册模型
      修改admin.py

    • 小结:步骤3、4、5完成了应用程序建立数据库表的过程。步骤7完成了应用程序数据库模型向项目的注册过程。

    • 8、定义模型Entry,并重复迁移和注册(5、7)过程
      修改model.py,定义Entry类。
      定义Entry模型,相当于新建了一个数据库表Entry,此表与Topic表是多对一的关系,即一个topic 的ID下可以关联多个Entry。
      此时,再访问127.0.0.1:8000/admin,网站如下图,可以看到里面有两个数据库表;Entry和Topic。
      127.0.0.1:8000/admin

    • 创建网页
      创建网页分三个阶段:定义URL,编写视图(View)和编写模版(Template)。
      首先,必须定义URL模式,URL模式描述了URL是如何设计的,让Django知道如何将浏览器请求与网站URL匹配。
      每个URL请求都被映射到特定的视图,视图函数获取并处理网页所需数据。
      每个视图函数通常调用一个模版,模版函数生成浏览器能理解的网页。

    注意,解决’Specifying a namespace in include()withou providing an app_name)'错误:

    	python3 Django 环境下,如果你遇到在根目录下urls.py中的include方法的第二个参数namespace添加之后就出错的问题。请在[app_name]目录下的urls.py中的urlpatterns前面加上app_name='[app_name]', [app_name]代表你的应用的名称。
    	例如:app_name ='[blog]' 
    	--------------------- 
    	作者:他说少年如歌 
    	来源:CSDN 
    	原文:https://blog.csdn.net/qq_27437781/article/details/80436799 
    	版权声明:本文为博主原创文章,转载请附上博文链接!
    	```
    	![Topics](https://img-blog.csdnimg.cn/20181222155131216.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0ZXZlbnRpYW43Mg==,size_16,color_FFFFFF,t_70)
    	
    

Django建立WEB应用程序简要流程

猜你喜欢

转载自blog.csdn.net/steventian72/article/details/85087522