码迷,mamicode.com
首页 > 其他好文 > 详细

初识django框架

时间:2018-01-11 22:16:47      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:site   包含   tcp   col   技术分享   ddr   用户   方法   url   

WEB框架介绍

框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演。

对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端

技术分享图片

技术分享图片
import socket

def handle_request(client):

    buf = client.recv(1024)
    client.send("HTTP/1.1 200 OK\r\n\r\n".encode("utf8"))
    client.send("<h1 style=‘color:red‘>Hello, yuan</h1>".encode("utf8"))

def main():

    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind((localhost,8001))
    sock.listen(5)

    while True:
        connection, address = sock.accept()
        handle_request(connection)
        connection.close()

if __name__ == __main__:

    main()
View Code

      最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回。

如果要动态生成HTML,就需要把上述步骤自己来实现。不过,接受HTTP请求、解析HTTP请求、发送HTTP响应都是苦力活,如果我们自己来写这些底层代码,还没开始写动态HTML呢,就得花个把月去读HTTP规范。

      正确的做法是底层代码由专门的服务器软件实现,我们用Python专注于生成HTML文档。因为我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。

HTTP协议

  所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定?HTTP协议。HTTP协议就是解决这个问题,它规定了发送消息和接收消息的格式

  每个HTTP请求和响应都遵循相同的格式,一个HTTP包含Header和Body两部分,其中Body是可选的。HTTP响应的Header中有一个Content-Type表明响应的内容格式。如text/html表示HTML网页。
(1)HTTP请求

HTTP GET请求的格式:

技术分享图片

HTTP POST请求格式:技术分享图片

(2)HTTP响应

  HTTP响应的格式:

 技术分享图片

django框架

1、框架介绍

  根据第一部分内容介绍,我们可以总结出一个web框架应该包含如下三部分:a.sockect服务、b.根据不同的url调用不同函数(包含逻辑)、c.返回内容(模板渲染)。常见的python WEB框架有tornado(包含如上3部分, Django(上述a部分为第三方的),flask(上述a和c为第三方的)。

2、Django安装

技术分享图片

一、命令行方式

命令行创建django项目(首先将cd到django项目欲放置的位置):

技术分享图片

 使用方法

进到要存放的文件夹目录

技术分享图片

 

技术分享图片

启动Django项目:
    命令行方式:
        python manage.py runserver 127.0.0.1:8888
        python manage.py runserver 8888

目录介绍

技术分享图片

配置文件

  模板文件配置:在python中创建一个django项目后,在项目文件夹下会多一个templates文件夹,主要用于存放html模板文件,若要准确找到引用的html文件,需要在setting文件中对此文件夹路径进行配置。如下:(利用pycharm创建django项目,pycharm会自动帮你创建)

 技术分享图片

静态文件配置:在使用html模板文件时,其通常会有使用js或css等文件,这些文件称为静态文件,为了使其正常生效,我们也需要在setting文件进行相关配置,如下:

技术分享图片

html文件中引用静态文件的方式如下:

技术分享图片

django入门必学三招

技术分享图片

HttpResponse

:用于向服务器返回字符串(如启动服务后,在浏览器请求:127.0.0.1:8000/index/后,浏览器显示hello world字符内容)

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse,render,redirect

def index(request): # 所有跟请求相关的数据,都保存在request
    return HttpResponse("<h1>hello world</h1>")

urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r^index/, index),
]

技术分享图片

 

技术分享图片

 (2)render

:用于渲染html文件,如启动服务后,在浏览器请求:127.0.0.1:8000/login/后,浏览器会显示login.html文件应被渲染出的结果

技术分享图片
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse,render,redirect

def login(request): # 所有跟请求相关的数据,都保存在request
        return render(request,"login.html")


# def index(request):
    # return render(request,"index.html")

# def index(request):
# Httpesponse ---> Http模式
#     return HttpResponse("<h1>hello world</h1>")

urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    # url(r‘index/‘, index),
    url(rlogin/, login),
]
urls.py

此过程中的错误点:

技术分享图片

 

技术分享图片

 

初识django框架

标签:site   包含   tcp   col   技术分享   ddr   用户   方法   url   

原文地址:https://www.cnblogs.com/jassin-du/p/8270462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!