Python/Django-Web原理(一)
Python/Django-Web原理(一)
websocket
webSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML规范中被引用为TCP连接,作为基于TCP的套接字API的占位符,它实现了浏览器与服务器全双工(full-duplex)通信。基本质是保持TCP连接,在浏览器和服务端通过 Socket进行通信
自己开发Web框架(任何访问浏览器都是基于socket)
用到的知识共有( 1、socket通讯 2、HTTP协议 3、HTML知识 4、数据库(连接数据pymysql、SQLAlchemy))
Web框架本质
1 1. Web框架本质
2 - 本质socket
3 - Http协议
4 - 头
5 - 体
6 - 字符串
7 2. Django
8 - 安装
9 - django-admin startproject mysite
10 - 配置
11 - 模板路径
12 - 静态文件
13 - CSRF注释
14 - urls.py
15 url - > 函数
python编写的socket服务端
1 import socket
2 sk=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
3 sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
4 sk.bind(('127.0.0.1',8080))
5 sk.listen(5)
6 while True:
7 conn,addr=sk.accept()
8 data=conn.recv(1024)
9 conn.send(b'111111')
10 conn.close()
启动socket服务器后,等待用户通过浏览器(socket客户端)连接,然后收发数据。
a、socket服务端
b、根据URL不同返回不同的内容(路由系统:URL- >函数)
c、字符串返回给用户(模板引擎渲染)
HTML充当模板(特殊字符)
自己创造任意数据
WEB框架种类:
Torado ------------>a,b,c
wsgirref------------>Django [第三方a],b,c
flask---------------->第三方[a],b[第三方c]------>flask
Django框架
pip3 install django 安装django模块
创建Django程序
django-admin startprobject mysite
进入程序目录
cd mysite
启动socket服务端,等待用发送请求
1 python manage.py runserver 127.0.0.1:8080
2 如果不指定ip和端口
3 例如:
4 python manage.py runserver
5 得到ip是127.0.0.1:8000
Django程序目录:
1 mysite
2
3 -mysite
4
5 -settings.py Django配置文件
6 -url.py 路由系统: url<----->函数
7 -wsgi.py 用于定义Django用socket,wsgiref,(uwsgi)性能高
8
9 对当前Django程序所有操作可以基于 python manage.py runserver (manage.py)
在pycharm中创建一个Django文件,其中一定要包含目有

其中static文件夹是存放静态css文件,图片等文件
template文件夹存放html模板
untitled1文件夹存放 settings.py Django配置文件
url.py 路由系统: url<----->函数
wsgi.py 第三方socket
urls.py写要执行的url和相应的函数
1 from django.conf.urls import url 从django中导入url
2 from django.contrib import admin 从django中导入admin
3 from django.shortcuts import HttpResponse,render 从django中到导入HttpResponse,render 俩种返回给用户形式
4 def login(request): 定义以url 相应的函数
5 # return HttpResponse('<input type="text">')
6 给用户返回一个字符串类型(标签或在页面中通过浏览器渲染出来)
7 return render(request,'login.html',{加值可以进行渲染})
8 第一个值必须是函数的参数本身给用户返回一个渲染的模板和内容
9 urlpatterns = [
10 # url(r'^admin/', admin.site.urls),
11 url(r'^login/', login),
12 ]
13 url设置url和要执行的函数相对应的关系
设置HTML页面存在位置

在settings.py文件中找到TEMPLATES中找到DIRS对应的值,列表中第一个是执行的路径(BASE_DIR)指得是untitled1 E:\untitled1文件
后边的是存放html的文件夹
template文件下创建的html模板
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 <link rel="stylesheet" href="/static/static.css"/>
7 </head>
8 <body>
9 <h1>登录页面</h1>
10 <input type="text" name="username">
11 <input type="password" name="password">
12 <input type="submit" value="登录">
13 </body>
14 </html>
代码上能看到我导入一个css样式文件,在自己写的模板中是可以进行样式渲染的但是需要注意的是,如果有css样式渲染要在settings.py中进行设置
设置静态页面存在位置

如上图,打开settings .py文件一直向下滑,能看到STAIC——URLA在这下边需要添加自己创建存放css的文件,添加格式如下:
1 STATICFILES_DIRS=(
2 os.path.join(BASE_DIR,'static'), 前边是拼接的路径,后面是存放css样式的文件夹
3 )
注释掉crsf验证

另外需要设置一个其他设置在settings文件中找到MIDDLEWARE中的'django.middleware.csrf.CsrfViewMiddleware',进行注释
1 print(request.GET) 查看请求头的内容
2 print(request.POST) 查看请求体的内容
3 print(request.method) 查看传输类型
注意:GET请求里只有GET的值,POST请求里GET和POST都可能有值
HTML渲染设置
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 </head>
7 <body>
8 <h1>模板学习</h1>
9 <p>{{name}}</p>
10 <p>{{name.0}}</p>
11 <p>{{name.1}}</p>
12 <p>{{leixing.k1}}</p>
13 <p>{{msg}}</p>
14 <h1>循环</h1>
15 {%for row in name%}
16 <p>{{row}}</p>
17 {% endfor %}
18
19 </body>
20 </html>
urls.py文件设置
1 from django.conf.urls import url
2 from django.contrib import admin
3 from django.shortcuts import HttpResponse,render,redirect
4
5 def good(request):
6 return render(request,'ads.html',{
7 'msg':'alex',
8 'age':'18',
9 'leixing':{'k1':'SB','k2':'sb'},
10 'name':['wocao','nidaye']
11
12 })
13
14
15 urlpatterns = [
16 # url(r'^admin/', admin.site.urls),
17 # url(r'^login/', login),
18 url(r'^good/', good),
19 ]
Python/Django-Web原理(一)的更多相关文章
- Python Django(WEB电商项目构建)
(坚持每一天,就是成功) Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,模板T和视图V组成. 安装Pyth ...
- [python] python django web 开发 —— 15分钟送到会用(只能送你到这了)
1.安装python环境 1.1 安装python包管理器: wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py 1. ...
- python django web 端文件上传
利用Django实现文件上传并且保存到指定路径下,其实并不困难,完全不需要用到django的forms,也不需要django的models,就可以实现,下面开始实现. 第一步:在模板文件中,创建一个f ...
- Python Django Web开发的5个优秀好习惯
https://blog.csdn.net/weixin_42134789/article/details/82381854
- python django 多级业务树形结构规划及页面渲染
概述: 在项目中,父级到子级结构并不少见,如果仅仅的两层树形结构,我们可以使用数据库的外键设计轻松做到,子级业务表设计一字段外键到父级业务表,这样子到父.父到子的查询都非常简单. 但是往往父子结构会有 ...
- python Django 学习笔记(一)—— Django安装
注:本人python版本2.7.5 ,win7系统 安装Django https://www.djangoproject.com/download/ 官方下载Django-1.5.5.tar.gz 1 ...
- 小试VS 2017 开发Python Django项目过程一
一.新建项目python ->django web 项目 (选择带bootstrap风格与twwriter)项目名称iepiececomputing (ie计件计算)跳出窗体 -> 添加虚 ...
- 在IIS上部署基于django WEB框架的python网站应用
django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上. 笔者的运行环境: Window xp sp3 IIS 5.1 ...
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
- VS2013中Python学习笔记[Django Web的第一个网页]
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...
随机推荐
- python 练完这些,你的函数编程就ok了
文件处理相关 1,编码问题 (1)请问python2与python3中的默认编码是什么? python 2.x默认的字符编码是ASCII,默认的文件编码也是ASCII python 2.x默认的字符编 ...
- IPFS开发团队是如何工作的?
小编不是一个很八卦的人,连当红明星都认不全.不过,今天还是带领大家来扒一扒ipfs开发团队是如何工作的. 工作方式: 全体会议:每周一有一个全体会议,这个会议是提前安排好的一个日程 任务讨论:把大任务 ...
- C语言第一次博客作业
一,PTA实验作业 题目1.温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代 ...
- Python实现制度转换(货币,温度,长度)
人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中: 人民币和美元间汇率固定为:1美元 = 6.78人民币. 程序可以接受人民币或美元输入,转换为美元或人民币输出.人民币采用R ...
- java 常用正则表达式总结
邮政编码: ^[1-9]\d{5}$ QQ号码: ^[1-9]\d{4,10}$ 或者:[1-9][0-9]{4,11} 邮箱: ^[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0- ...
- [SCOI2011] 糖果
luogu Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到 ...
- Matplotlib库的使用
*可通过dpi修改输出质量 plot函数 第一种方法会使图中所有的字体改变,而第二种方法只会改变中文字体,推荐使用第二种方法.
- SAS9.2的增强编辑器注册解决方案
系统环境:Win10,64位,SAS9.2破解版 问题: 原win7换成win10后,重装SAS9.2,增强编辑器无法使用. 解决方案: 方案一: 点击"视图"-选择程序编辑器,这 ...
- JavaScript(第十三天)【内置对象】
学习要点: 1.Global对象 2.Math对象 ECMA-262对内置对象的定义是:"由ECMAScript实现提供的.不依赖宿主环境的对象,这些对象在ECMAScript程序执行之前就 ...
- beta冲刺4-咸鱼
昨天的问题: 我的社团数据库表项的处理,代码修改后结果无法显示. 帖子内容无法显示出来. 首页图像未替换 登陆整合没有完成 今天的完成: 服务器部署成功 页面背景修改.(已上传,未确认实装.) 任务截 ...