python:Django web框架本质 常用web框架 学习Django  配置文件

Python的WEB框架有Django、Tornado、Flask 等多种

众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

常用web框架

MVC

    Model  View  Controller

    数据库 模板文件 业务处理

MTV

    Model Template View

    数据库 模板文件 业务处理

 

django是基于MTV的web框架
model数据库的操作 template模版文件 view业务处理

学习Django

    Django框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能

1.安装

1)打开cmd,进入到python安装路径下的Scripts;

2)使用pip安装:pip install Django

3)添加环境变量:python安装路径下的Scripts;

 

2.创建django projcet   

      django-admin startproject mysite

 model数据库的操作 view模版文件 controller业务处理



3.Django请求生命周期
   -> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串
   -> URL对应关系(匹配) -> 视图函数 -> 打开一个HTML文件,读取文件

 配置文件


1)数据库:


DATABASES = {


    'default': {


    'ENGINE': 'django.db.backends.mysql',


    'NAME':'dbname',


    'USER': 'root',


    'PASSWORD': 'xxx',


    'HOST': '',


    'PORT': '',


    }


}


 数据库为MySQL时,__init__下需要引入

import pymysql

pymysql.install_as_MySQLdb()

python:Django
web框架本质
常用web框架
学习Django
 配置文件


手动创建数据库名称

  mysql -u root -p 

     show databases;

  create database 数据库名称;
  show tables;

静态文件:


STATICFILES_DIRS = (


        os.path.join(BASE_DIR,'static'),


    )




模板:


TEMPLATE_DIRS = (


        os.path.join(BASE_DIR,'templates'),


    )






创建APP


# 切换到Django项目目录,执行命令


python manage.py startapp cmdb


  


# 目录结构


- cmdb


    - migrations  #数据库操作记录(只是修改表结构的记录)


    - init      #表示python数据包(python3中有无均可)


    - admin      #Django为我们提供的后台管理


    - apps      #配置当前app


    - models     #创建数据库表结构,写指定的类,通过命令可以创建数据库结构


    - tests      #单元测试


    - views      #写业务逻辑代码,最重要的就是这个文件了



用户来的时候找URL的对应的关系
内部就是创建一个sock对象,把请求给函数,函数处理完把结果返回给用户


Django 支持缓存 支持连接数据库,静态文件处理、找模版、加密
wsgiref 自己写Socket太麻烦,python有一个自定义模块wsgiref,用这个模块可以帮我们创建socket对象,我们只写处理请求的函数就行。
Django不负责写socket 也是依赖于wsgi(wsgi规则或接口),
wsgi的本质就是创建socket
上线的时候不能用默认的wsgi,需要用到第三方的模块uwsgi+nginx 程序就能跑起来

Orm ---叫关系对象映射

让数据库自动生成表的命令有
python manage.py makemigrations
python manage.py makegrate
---通过manage.py来管理程序




request.GET.get('',None) # 获取get请求发来的数据


request.POST.get('',None) # 获取post请求发来的数据

request.FILES # 获取上传文件

request.path_info()# 获取上次文件路径

request.method()# 请求是什么方式(get还是Post)

return HttpResponse("字符串")


return render(request, "HTML模板的路径")


return redirect('/只能填URL')