zoukankan      html  css  js  c++  java
  • web框架和django基础(粗糙版)

    web框架本质:
        浏览器:socket客户端
        服务器:socket服务端
       
        1.自己写socket服务端(最傻)
            #!/usr/bin/env python
            # -*- coding:utf-8 -*-
            import socket

            def handle_request(client):
                date = client.recv(1024)
                client.send(b'HTTP/1.1 200 OK ')
                client.send(b'Hello')
            def main():
                sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
                sock.bind(('localhost',8000))
                sock.listen(5)
                while True:
                    conn,addr = sock.accept()
                    handle_request(conn)
                    conn.close()
            if __name__ == '__main__':
                main()
        2.次之(web框架的开发者) 
            WSGI:通用网关服务接口
                server_names = {
                    'cgi': CGIServer,
                    'flup': FlupFCGIServer,
                    'wsgiref': WSGIRefServer,
                    'waitress': WaitressServer,
                    'cherrypy': CherryPyServer,
                    'paste': PasteServer,
                    'fapws3': FapwsServer,
                    'tornado': TornadoServer,
                    'gae': AppEngineServer,
                    'twisted': TwistedServer,
                    'diesel': DieselServer,
                    'meinheld': MeinheldServer,
                    'gunicorn': GunicornServer,
                    'eventlet': EventletServer,
                    'gevent': GeventServer,
                    'geventSocketIO':GeventSocketIOServer,
                    'rocket': RocketServer,
                    'bjoern' : BjoernServer,
                    'auto': AutoServer,
                }
            Python中的模块来实现web框架
                from wsgiref.simple_server import make_server
                def RunServer(environ, start_response):
                    # environ 用户请求的相关信息
                    # start_response  设置用户相应的相关信息
                    start_response('200 OK', [('Content-Type', 'text/html')])
                    return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ]
                if __name__ == '__main__':
                    httpd = make_server('localhost', 8000, RunServer)
                    print("Serving HTTP on port 8000...")
                    httpd.serve_forever()
                   
        3.现成的web框架 Bottle,Flask,Django,tornado(不是用django写的)
           

           
    四,Django
        web框架分两类:
        (功能齐全)
            Django        大而全
            Bottle,Flask,Tornado,Webpy
        安装:
            1.pip3 install django
            2.解压
                python3 setup.py install
                可执行文件  django-admin.exe 目录在python3下的script下
                #添加环境变量
               
            3.基本使用
                创建project
                    django-admin startproject projectname(Mysite)
                   
                    mysite
                        - mysite        (配置文件)
                        - manage.py        (管理project)
                        - app(cmdb)
                            - models.py     数据库操作
                            - admin.py         配置django自带的后台管理
                            - apps.py         当前app的配置
                            - test.py        单元测试
                            - views.py        做业务处理
               
                运行
                    cd mysite
                    python3 manage.py runserver 127.0.0.1:8000
                   
                创建app(处理业务逻辑)
                    cd mysite
                    python3 manage.py startapp cmdb
                    python3 manage.py startapp monitor(监控)
                   
            django的基本使用
                urls中的配置
                    from cmdb(appname) import views
                    urlpatterns = [
                        url(r'^admin/', admin.site.urls),#默认的管理界面
                        url(r'^index/', views.index),#自己配置的指向views.index
                    ]
                views中的配置
                    from django.shortcuts import HttpResponse
                    # 至少一个参数request
                    # request封装用户请求相关信息
                    def index(request):
                        print(request.GET)
                        return HttpResponse('ok')
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
                   
                    

    最新内容可以看我的blog: 40kuai
  • 相关阅读:
    通达OA二次开发 工作流表单中关联查询另外一个工作流方法(源代码)
    SpringMVC+ajaxFileUpload上传图片 IE浏览器弹下载框问题解决方式
    Javascript正则中的exec和match
    Java中byte转int的方法
    推断php操作mysql(添删改查)是否成功
    关于人工智能的一些思考~
    Tomcat的虚拟主机的配置
    最近遇到的若干技术问题
    2015年工作中遇到的问题:11-20
    2015年工作中遇到的问题:11-20
  • 原文地址:https://www.cnblogs.com/40kuai/p/6839835.html
Copyright © 2011-2022 走看看