首页 > 代码库 > web框架
web框架
1.web框架的本质
在web浏览中, 浏览器相当于客户端, 对web的操作相当于编写服务器
最基本的web服务器代码为
import socket
server=socket.socket()
server.bind((‘127.0.0.1‘,8080))
server.listen(5)
while True:
conn,addr=server.accept()
data=http://www.mamicode.com/conn.recv(1024)>
解析HTTP的请求报文
请求头和请求体用\r\n\r\n分割
请求头中的每一行用\r\n分割
2.基本框架的改进
(1)限制URL
通过分析请求头,获得请求头的URL,用URL来返回不同的数据
import socket
server=socket.socket()
server.bind((‘127.0.0.1‘,8080))
server.listen(5)
while True:
conn,addr=server.accept()
data=http://www.mamicode.com/conn.recv(1024).decode(‘utf8‘)>
(2)将URL封装
import socket
server=socket.socket()
server.bind((‘127.0.0.1‘,8080))
server.listen(5)
def f1():
conn.send(‘main page‘.encode(‘utf8‘))
def f2():
conn.send(‘hello world‘.encode(‘utf8‘))
routers=[
(‘/index‘,f1),
(‘/hi‘,f2)
]
while True:
conn,addr=server.accept()
data=http://www.mamicode.com/conn.recv(1024).decode(‘utf8‘)>
(3)通过读取文件返回HTML页面
def f3():
with open(‘login.html‘,‘rb‘)as f:
conn.send(f.read())
routers=[
(‘/index‘,f1),
(‘/hi‘,f2),
(‘/wapper‘,f3)
]
(4)通过替换特殊字符串来动态返回HTML页面
def f4():
with open(‘login.html‘,‘rb‘)as f:
data=http://www.mamicode.com/f.read()>
(5)读取数据库的表,获得数据库的数据并显示
(6)使用jinjia2来替换动态内容
3.框架的分类
4.Django框架
4.1创建基本Django项目
(1)安装
pip3 install django
添加环境变量
一般安装到Python的scripts的文件夹下
将scripts文件夹添加到环境变量
C:\Python36\Scripts\django-admin
创建一个项目
django-admin startproject 项目名
进入该项目目录中
python manage.py runserver IP地址:端口
如果不带上IP地址和端口, 默认是本地地址, 端口为8000
4.2用IDE创建Django项目
项目结构相同
│ db.sqlite3
│ manage.py 项目启动管理PY文件
│
└─项目名
│ settings.py 项目配置文件
│ urls.py 路由配置
│ wsgi.py
│ __init__.py
│
└─__pycache__
(1)配置URL urls.py
urlpatterns = [
# url(r‘^admin/‘, admin.site.urls),
url(r‘^login/‘, login),##后面一定要加逗号!!
]
(2)配置处理 函数urls.py
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse,render,redirect
def login(request):#处理用户请求 并且返回结果
#至少有一个参数
# request 用户请求相关的所有信息(对象)
# return HttpResponse(‘login‘) #HttpResponse里面只能加字符串
# 返回用户所需要的信息
# return HttpResponse(‘<input>‘)#也可以返回一个标签,或者文件
if request.method=="GET":
return render(request,‘login.html‘)
else:
print(request.POST)#用户名密码字典都放在POST里面
#获取
u=request.POST.get("username")
p=request.POST.get("password")
if u=="root" and p=="123123":
return redirect(‘http://www.oldboyedu.com/‘)##跳转地址
#登录成功
else:
return render(request,‘login.html‘,{‘msg‘:‘用户名或密码错误‘})
#登录失败
#render默认自动查找模板路径下的login.html文件
#读取内容并返回给用户
(3)使用render的模板文件配置settings.py
‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)]
一般地, 模板文件放在templates文件中, 配置这个之后就能找到该文件了
(4)配置静态文件目录 settings.py
<link rel="stylesheet" href="http://www.mamicode.com/static/com.css">
--STATIC_URL = ‘/static/‘
STATICFILES_DIRS=(
os.path.join(BASE_DIR,‘sta‘),
)
web框架
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。