首页 > 代码库 > Python/Web(一)

Python/Web(一)

Python/Web(一)

websocket

webSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML规范中被引用为TCP连接,作为基于TCP的套接字API的占位符,它实现了浏览器与服务器全双工(full-duplex)通信。基本质是保持TCP连接,在浏览器和服务端通过 Socket进行通信

自己开发Web框架(任何访问浏览器都是基于socket)

  用到的知识共有(

  1、socket通讯

  2、HTTP协议

  3、HTML知识

  4、数据库(连接数据pymysql、SQLAlchemy)

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=http://www.mamicode.com/conn.recv(1024)
 9     conn.send(b111111)
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程序

1 django-admin startprobject mysite

进入程序目录

1 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和要执行的函数相对应的关系

 

技术分享

 

 

 在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=http://www.mamicode.com/"/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=http://www.mamicode.com/"登录">
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 )

技术分享

 

另外需要设置一个其他设置在settings文件中找到MIDDLEWARE中的‘django.middleware.csrf.CsrfViewMiddleware‘,进行注释

 

Python/Web(一)