Day15 Web框架及Django框架

day15 2018-03-31html

1. 上午重在理解python

1. 用户浏览器 --> socket 客户端
4. 发送消息给服务端

7. 收到回复消息

断开

2. 博客园的server --> socket 服务端
1. 启动服务,
2. 绑定IP和端口,等待链接
3. 监听

while 1:
5. 服务端要接收消息
6. 返回消息

8。 断开


PUT|xxx.avi|1024


浏览器和web服务端 互相通讯 要以来一个统一的规则(标准)
本质上就是互发的消息要有一个格式的要求

HTTP协议

浏览器往服务端发的消息叫:请求(request)
请求行 GET /index/ HTTP/1.1
请求头 k1:v1
\r\n
请求体

服务端回复给浏览器的消息叫:响应(response)
响应行 HTTP/1.1 200 OK\r\n (规定格式)
响应头 Content-Type: text/html; charset=utf-8\r\n
k2:v2\r\n
...
\r\n
响应体 咱们在浏览器上看到的内容


总结上午讲解内容:
a. 接收浏览器发送的消息
b. 根据不一样的路径返回不一样的内容
c. 经过字符串替换 实现 动态网页mysql

Web服务程序与Web应用程序之间的关系以下图:程序员

 




Python Web框架分类:
1. 框架自带 a,b,c Tornado
2. 框架自带b,c 使用第三方a Django
3. 框架自带b,使用第三方的a和c Flask

另一个维度的分类:
1. Django --> 大而全
2. 其余 web

Django:
1. 安装
pip install django==1.11.9
2. 新建Django项目
1. django-admin startproject 项目名

3. Django 设置 settings.py文件中sql

设置完Django项目,里面的.py文件的使用。数据库

 


1. 注释掉 csrf相关的那一行(大概是46行!)
2. 配置html文件相关
3. 配置静态文件相关 /static/
Django里面的url.py指的是,url与函数对应的关系
4. 基础必备的三件套
1. HttpResponse --> 字符串
2. render() --> HTML文件 --> 打开HTML文件而且完成字符串的替换 (包含 request  html文件名  转换字符串三个参数)
3. redirect(“/book_list/”) --> 跳转


5. HTML页面中form表单提交数据三个要点:
1. input必定要放在form表单里面,而且 input 要有name属性
2. form表单里面触发提交操做 必定要有submit按钮!!! <input type="submit" value="提交">
3. 要指定form表单提交的URL(action属性) 而且指定提交的方法(method属性)。提交from表单须要用到postdjango

6,建立python里面的应用APP在如今的terminal s输入命令:python manage.py startapp app01(app名字)或者在窗口找到建立的Django目录下输入这个命令建立。
浏览器

 

Django中操做MySql数据库的准备工做:app

  1,建个数据库

  2,告诉Django去哪里连数据库

  3,MYSQLdb、pymysql,告诉Django使用pymysql链接MySQL数据库

                 import pymysql

                 pymysql.install_as_MySQLdb()

      4,在app/models.py文件中,根据特定的语法  建立类

       5,执行两个命令

    


{"email": "alex@1.com", "pwd": "alexdsb"}

2. ORM 对象关系映射 SQLAlchemy

链接数据库

类 --> 数据表

属性 --> 字段


对象 --> 数据行


让程序员不用本身写SQL语句,而是利用程序自动翻译的SQL语句

$("#i1") document.getElementById("i1")



特殊的语法 SQL语句


ORM不能操做数据库,因此才要本身建数据库!!!

Django中操做MySQL数据库的准备工做:
1. 本身用SQL语句建个数据库 --> create database s20;
2. 告诉Django去哪儿连数据库
在settings.py文件中设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 告诉Django链接数据库的类型
'NAME': 's20',
'HOST': "127.0.0.1",
'PORT': 3306, # 不要加引号
'USER': "root",
"PASSWORD": "123456", # 要加引号
}
}
3. MySQLdb、pymysql,告诉Django使用pymysql链接MySQL数据库

project/__init__.py文件中:
import pymysql
pymysql.install_as_MySQLdb()

4. 在app/models.py文件中,根据特定的语法 建立类
class Book(models.Model):
# 定义一个自增的ID主键
id = models.AutoField(primary_key=True)
# 定义一个最大长度为32的varchar字段
title = models.CharField(max_length=32)

5. 执行两个命令
1. python manage.py makemigrations --> 用小本本记录 app/models.py文件的任何改动
2. python manage.py migrate --> 把上面的改动翻译成SQL语句,而后去数据库中执行




1. 操做数据表




2. 操做数据行
1. 增
Book.objects.create(title="书名")
2. 删
models.Book.objects.get(id=2).delete()
3. 改
obj = models.Book.objects.get(id=1)
obj.title = "番茄物语 第二版"
obj.save() --> 把改动同步到数据库中!!!
4. 查
查单个:
obj = models.Book.objects.get(id=1)

查全部:
objs = models.Book.objects.all()


书管理系统:
1. /book_list/ 在页面展现全部的书



ORM外键关联

主机表 主机组表

id name ip memo group id name

3. 做业
1. 把课上咱们写的书管理系统,用Bootstrp写完
2. 把外键关联的增删改查本身写一遍!







3. 做业 1. 主机表

相关文章
相关标签/搜索