django web开发

1. 安装

  1. 安装django
    pip install django
  2. 安装cherrypy
    pip install cherrypy
  3. 复制文件cherrypy_startup.py到wsgi.py相同目录下
  4. 查看cherrypy_startup.py里面的配置项
  5. 在控制台中运行Python ci\cherrypy_startup.py,启动一个服务
  6. 浏览器查看网页
  7. 0.0.0.0—表示所有的ip都监听

2.静态文件支持

  1. HTML\CSS文件访问
  2. 正式运行时,一般不用Django(nginx,varnish,cdn等),开发时可以先用Django
  3. 提倡的做法是与ci文件同一个目录,创建一个static目录(名字可以随便取)
  4. 在url.py文件进行修改
    • from django.conf.urls.static import static urlpatterns=[...]+static("/s",document_root="./static")
    • 当前是以s开头,匹配到/static中文件除了s后面的文件名字,并且加上后缀名

3.HTM是用于创建网页的标记语言

  1. HTML:超文本标记语言(Hyper Text Markup Language)
  2. HTML不是一种编程语言,而是一种标记语言
  3. 用来描述网页的一种语言
  4. 浏览器分析HTML从而展现页面的内容(渲染,render)

步骤

  * 在静态static文件中创建一个html文件

diango 原理

  1. 项目目录 mysite/wsgi.py
    • 协议wsgi,将Python web 服务器分为sever端和application端,sever端和application端分别实现服务端代码的一部分
    • sever端和application端运行在一个Python进程中,sever端接受到http请求后,会调用application端的入口函数的方法,由application端进行处理。
    • sever 端负责提供高效的http请求的处理环境(多线程,多进程,协程)
    • application端实现具体的处理请求的业务逻辑
    • django是application端的框架,并没有提供高效的http请求的处理环境,需要相应的sever端产品(gunicorn,uwsgi,cherrypy)
    • wsgi.py 就是给sever端调用的接口文件,里面的变量application指向的对象实现了wsgi接口。

##3. 路由

1. django中的APP

  • django中的APP就是一个应用的意思
  • 项目可以包含多个app
  • 一个项目对应一个网站(生活服务网站)
  • 一个APP对应网站的一个应用(二手交易,家政服务)

2.创建一个app

  • 执行命令
python manage.py startapp *main*

main 为应用的名字,可以随便取

  • http请求
  • 访问http://localhost/student

2.0 具体过程

*  请求发送到后台
* wsgi sever 传递给django框架
* django框架查看路由表
* 根据路由表配置,调用相应的函数(方法)处理

2.1 django 允许路由分层,定义子路由,路由表示有优先级顺序的,排在前面的路由优先级高

  • 子路由表存放相关条目
  • 总路由表用include包含子路由表
  • 步骤
    • 先在app目录中创建文件url.py,写出子路由表
    • 然后修改总路由表文件,包含子路由文件

2.2 如何获取request中的值

使用get方法:使用request的GET方法
使用post方法request.POST.get()

4.用户输入数据

####4.1 html表单

  • 用户通过表单提交数据
  • 格式 <form> element </form>
  • 最常见的元素为input元素:type属性text,radio,submit
  • 属性action:后面添加相对地址或者绝对地址
  • name属性是表明参数的名字的属性
    ####4.2 页面样式
    django web开发
4.2.1 html的学习笔记
  • 元素是以开始标签/结束标签,例如:

  • 大多数html标签可以拥有属性
4.2.2 html中标签,属性,元素的区别

地址参考:https://zhidao.baidu.com/question/183622065.html

* 标签

 *  由尖括号包围的关键词,例如:<p>
 * 通常是开始标签/结束标签成对出现,中间放值,如果是单独的标签则在标签属性中赋值。例如:`<p>element</p>,<input type="text" value="按钮" />`
 * 开始标签和结束标签也被称为开放标签和闭合标签
 * 也有单独呈现的标签,如:<img src="百度百科.jpg" />等
 * 网页的内容需在<html>标签中,标题、字符格式、语言、兼容性、关键字、描述等

* 属性

  • HTML属性为HTML元素提供附件信息。
    例如在超链接标签博客园使用了href 来指定超链接的地址.
    属性总是以名称/值的形式出现,例如:name = “value”
    属性总是在开始标签中定义.

元素

*  HTML元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码
*  例如:<p>我是一个段落</p>表示一个html元素.可以看出,一个html元素主要包括html标签和纯文本.标签定义了网页显示的格式,文本表示网页的内容.故此,网页 =  html文档,而html文档则是由html元素定义的.  

4.3 后端动态产生

  • 拼接
  • 模板引擎,传入变量渲染出来
  • 引擎导入:
  • from django.template import engines django_engine=engine[''django] template=django_engine.from_string(templt)

数据库开发

WEB开发中的数据库操作
  • 目前最为常用的数据库mysql,postgresql
  • 服务程序使用相应的客户端连接 访问DB sever
  • 本教程使用另一种更简单的数据库(sqlite),没有数据库服务,数据操作被做成库,python内置了sqlite操作库
  • Django ORM(object relational mapping)技术
    * 简化数据库开发的逻辑,提供了开发的效率
    * 屏蔽了不同的数据库库访问的底层细节
  • 在setting.py中定义
  • DATABASE={ 'default': { 'ENGINE':'django.db.backends.sqlite3' 'NAME':os.path.join(BASE_DIR,'db.sqlite3') } }
    • ENGINE:用来配置数据库驱动,如果使用的是mysql数据库django.db.backends.mysql,并且做相应的数据连接的配置
    • NAME:用来添加数据库的地址,相对位置
数据库的配置
  1. Python自带数据库-sqlite
  2. 数据库使用各种内容
  3. 产生相应的数据库操作脚本
  • python manage.py makemigrations main
  1. 执行数据库脚本
  • python manage.py migrate
  1. 如果修改model,再次执行
数据库地址–https://docs.djangoproject.com/en/2.0/ref/databases/

心得

###1. 访问的原理是根据路由文件中的地址,访问view文件中的函数,浏览器读取Html文件,并渲染道浏览器上面。

上一篇:sql sever 游标


下一篇:浅学SQL Sever之数据库操纵(3)数据的操作第一部分