python django web_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文件,其中一定要包含目有

a4ed6e0eb6f0b28d51ee97eb7707b451.png

其中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('')

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页面存在位置

d77a79cd772e5c3098631e55a5158c1a.png

在settings.py文件中找到TEMPLATES中找到DIRS对应的值,列表中第一个是执行的路径(BASE_DIR)指得是untitled1 E:\untitled1文件

后边的是存放html的文件夹

template文件下创建的html模板

1

2

3

4

5

Title

6

7

8

9

登录页面

10

11

12

13

14

代码上能看到我导入一个css样式文件,在自己写的模板中是可以进行样式渲染的但是需要注意的是,如果有css样式渲染要在settings.py中进行设置

设置静态页面存在位置

7c5a5d7ca061ffb0da77cb3c7aa5a992.png

如上图,打开settings .py文件一直向下滑,能看到STAIC——URLA在这下边需要添加自己创建存放css的文件,添加格式如下:

1 STATICFILES_DIRS=(

2 os.path.join(BASE_DIR,'static'), 前边是拼接的路径,后面是存放css样式的文件夹

3 )

注释掉crsf验证

e7a768cb9c362001cbfeda903bbaa024.png

另外需要设置一个其他设置在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

2

3

4

5

Title

6

7

8

模板学习

9

{{name}}

10

{{name.0}}

11

{{name.1}}

12

{{leixing.k1}}

13

{{msg}}

14

循环

15 {%for row in name%}

16

{{row}}

17 {% endfor %}

18

19

20

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 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值