1.  网站本质:通过socket建立连接。

服务端(网站)

1.  先启动并监听:80端口

4.  获取请求信息

请求头

请求体

5.  处理请求

响应内容:

响应头:\r\n\r\n响应体    响应头会被放到浏览器中。  响应体就是收到的html页面。

客户端(浏览器)

2.  建立连接   IP:端口

3.  发送请求:

请求首行 \r\n    get请求数据在uri里面

请求头\r\n\rn

空行

请求体:  如果是get请求,请求体为空,提交的数据只能在uri里面;如果是post请求,请求体为提交的数据,uri也可以有数据。   name=a&password=123

注意:请求与响应是成对出现的,重定向是服务器给浏览器响应了一个新的地址,浏览器重新请求这个地址。

2.    Django的请求周期

3.   基于bootstrap实现用户登录

  • 创建好project和app
  • 修改setting.py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], 默认为空,需要添加上。模版的路径。
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
STATIC_URL = '/static/'
STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
#TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)    这一行注释掉
然后project中创建一个static目录.
  • 创建路由系统

在urls.py中,新建url与views的映射关系。

from ziyuanguanli import views
urlpatterns = [
#url(r'^admin/', admin.site.urls),
url(r'^login/', views.login),
]

        然后在views.py中,创建一个login的函数。

然后在templates中,添加一个模版。

4.   使用django连接数据库,在项目的models.py中,创建库和表结构。

from django.db import models

class UserInfo(models.Model):
id =models.AutoField(primary_key=True)
user=models.CharField(max_length=32,null=False)
pwd=models.CharField(max_length=64,null=False)
age = models.IntegerField(null=True) class Department(models.Model):
id=models.AutoField(primary_key=True)
depart=models.CharField(max_length=32) class Hosts(models.Model):
hostname=models.CharField(max_length=32)
ip=models.CharField(max_length=32)
depart=models.ForeignKey(to='Department',to_field='id')

  

执行命令:创建数据库表
python3 manage.py makemigrations
python3 manage.py migrate

5.   路由系统

url要添加起始符和终止符

传参一:使用url路径传入参数

request.GET.get('nid')

request.GET.get('xid')

传参二:

修改url为正则,可以使用位置参数传参

传参三:

使用关键字参数传参

路由分发:

python manage.py startapp openstack

如果有多个项目,可以在单独项目使用url,在公共的url里面,添加关键字include.

6.     视图函数

request.method

request.GET

request.POST

return  HttpResponse('文本')

return  redirect('url')

return  render(request,'模版路径',{'k1':'v1'})

7.     模版语言

a.  单值

{{'msg'}}

b.  列表

{{k2.2}}    取索引为2的值

c. 循环

{%for    i  in   k2 %}

{% endfor %}

循环取字典的values, keys,items

   {% for foo in k3.items %}
<p>{{ foo}}</p>
{% endfor %}

    d.   if  ..........else判断

    {% if k1 == 123 %}
<h1>下课</h1>
{% else %}
<h1>放学</h1>
{% endif %}

     e.   母板

先创建一个layout.html文件,然后写入:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/plugins/bootstrap/css/bootstrap.css">
<style>
body{
margin: 0;
}
</style>
{% block css %} {% endblock %}
</head>
<body>
<div style="height: 48px;background-color: #1b6d85">
头部菜单
</div>
<div>
<div style="float: left;width: 20%;background-color: #dddddd;height: 500px;">
菜单
</div>
<div style="float: left;width: 80%">
{% block content %} {% endblock %}
</div>
</div> {% block js %} {% endblock %}
</body>
</html> {% extends "layout.html" %} {% block content %} <h1>编辑部门</h1>
<form method="post">
<div class="form-group">
<label for="t1">部门名称</label>
<input id="t1" type="text" class="form-control" name="title" value="{{ obj.title }}">
</div>
<input type="submit" value="修改" class="btn btn-default">
</form> {% endblock %} {% block js %}
<script></script>
{% endblock %}

8.      外键补充

class Hosts(models.Model):
hostname=models.CharField(max_length=32)
ip=models.CharField(max_length=32)
depart=models.ForeignKey(to='Department',to_field='id')

  

python3学习笔记之十七的更多相关文章

  1. Python3学习笔记(十七):requests模块

    官方中文文档:http://docs.python-requests.org/zh_CN/latest/

  2. Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

    Python3学习笔记(urllib模块的使用)   1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None,  ...

  3. Python3学习笔记 - 准备环境

    前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...

  4. python3学习笔记(7)_listComprehensions-列表生成式

    #python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...

  5. python3学习笔记(6)_iteration

    #python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...

  6. python3学习笔记(5)_slice

    #python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...

  7. Python3学习笔记01-环境安装和运行环境

    最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...

  8. python3学习笔记(9)_closure

    #python 学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #从高阶函数的定义,我们可以知道,把函数作为参数的函数, ...

  9. python3学习笔记(8)_sorted

    # python学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #python 内置sorted()函数 可以对list进 ...

随机推荐

  1. 在Ubuntu 18.04系统上安装Systemback的方法(抄)

    在Ubuntu 18.04系统上安装Systemback的方法 2018-12-26 21:39:05作者:林莉稿源:云网牛站 本文介绍如何在Ubuntu 18.04或者Ubuntu 18.10系统上 ...

  2. [题解]邮递员寄信(luoguP1629)

    题目来源:luoguP1629 题目描述 有一个邮递员要送东西,邮局在结点1.他总共要送N-1样东西,其目的地分别是2-N.由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条 ...

  3. C++继承(一) 三种继承方式

    继承定义 继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一. 继承就是不修改原有的类,直接利用原来的类的属性和方法并进行扩展.原来的类称为基类,继承的类称为派生类,他们的关系就像父子 ...

  4. docker内安装php缺少的扩展mysql.so和mysqli.so

    首先找到php.ini,放开扩展: 打开php.ini 去掉前面的分号,因为是linux环境所以扩展改为.so文件 进入容器内docker安装扩展的目录: ./docker-php-ext-insta ...

  5. apue——无缓冲读写操作

    stdrw.c文件 #include "apue.h" #define BUFFSIZE 4096 #include <stdio.h> int main(int ar ...

  6. 从线性模型(linear model)衍生出的机器学习分类器(classifier)

    1. 线性模型简介 0x1:线性模型的现实意义 在一个理想的连续世界中,任何非线性的东西都可以被线性的东西来拟合(参考Taylor Expansion公式),所以理论上线性模型可以模拟物理世界中的绝大 ...

  7. Spring项目使用Junit4测试配置

    我们经常要写junit测试,在不启动整个web项目的情况下,测试自己的service实现或者是dao实现,我们来充分利用下junit4的强大功能. 1.junit4的测试类 import java.u ...

  8. VMware 安装Linux系统 CentOS

    VMware 安装Linux系统 CentOS 1.  下载镜像系统 centos镜像下载地址:https://www.centos.org/download/ 选择DVD下载即可 linux各版本下 ...

  9. 在 IDEA中运行 WordCount

    一.新建一个maven项目 二.pom.xml 中内容 <?xml version="1.0" encoding="UTF-8"?> <pro ...

  10. Coursera, Big Data 4, Machine Learning With Big Data (week 3/4/5)

    week 3 Classification KNN :基本思想是 input value 类似,就可能是同一类的 Decision Tree Naive Bayes Week 4 Evaluating ...