标签:style response http服务 ring 关系 contex width pos err
框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。
对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。
最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。
MVC把Web框架分为3个基础部分:
模型(Model):用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法,是Web应用程序中用于处理应用程序的数据逻辑的部分,Model只提供功能性的接口,通过这些接口可以获取Model的所有功能。白话说,这个模块就是Web框架和数据库的交互层。
视图(View):负责数据的显示和呈现,是对用户的直接输出。
控制器(Controller):负责从用户端收集用户的输入,可以看成提供View的反向功能。
这三个部分互相独立,但又相互联系,使得改进和升级界面及用户交互流程,在Web开发过程任务分配时,不需要重写业务逻辑及数据访问代码。
MVC在Python之外的语言中也有广泛应用,例如VC++的MFC,Java的Structs及Spring、C#的.NET开发框架,都非常有名。
Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代表:
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
pip3 install django
pip3 install django 项目名
python manage.py startapp 应用名 譬如:python manage.py startapp app01
python manage.py runserver ip port 譬如: #默认IP为127.0.0.1 python manage.py runserver 8080
python manage.py makemigrations python manage.py migrate 这种方法可以创建表,当你在models.py中新增了类时,运行它就可以自动在数据库中创建表了,不用手动创建。 PS:当执行python manage.py makemigrations报错 ... ... django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named ‘MySQLdb‘. Did you install mysqlclient or MySQL-python?
解决方法: 在app01应用下面__init__.py文件中
import pymysql pymysql.install_as_MySQLdb()
python manage.py flush 此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。
python manage.py createsuperuser # 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名密码必填 python manage.py changepassword username #修改用户名密码
python manage.py shell 这个命令和 直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据的测试非常方便。
python manage.py dbshell Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。 在这个终端可以执行数据库的SQL语句。如果您对SQL比较熟悉,可能喜欢这种方式。
python manage.py 查看所有的命令,忘记子名称的时候特别有用。
在应用文件夹内新建文件夹命名为:statics,每个应用内都有statics
在settings.py内,STATIC_URL=‘/static/‘ 下面加:
STATICFILES_DIRS = ( os.path.join(BASE_DIR,"应用名/statics"), )
前端页面中有form表单post方式报错,是因为Django的安全机制,在settings.py中的MIDDLEWARE内将 ‘django.middleware.csrf.CsrfViewMiddleware‘ 注释掉,或者在前端form表单内加入{% csrf_token %}即可。
from django.contrib import admin from django.conf.urls import url,include,re_path from app01 import views
from django.shortcuts import render,HttpResponse,render_to_response,redirect from django.template import Template,Context from app01 import models
标签:style response http服务 ring 关系 contex width pos err
原文地址:https://www.cnblogs.com/V587Chinese/p/9757538.html