zoukankan      html  css  js  c++  java
  • python-django学习

    最近项目组需要搭建一个server供其它工程使用,时间比较仓促,很多同事都是用的c++开发,对其它的web,app等不是很熟,于是,就让我这个刚进来的应届生参与进来,和leader一起做;之前也只是用python做了一些简单的网络爬虫相关毕业设计 ,对于python用于web开发并不是很熟悉;好在leader也精通python,对python的各个运用都比较熟悉,于是就选定了django作为搭建server的框架;在这里记录一些我对django的探索和学习,希望能给自己以及后来者一些帮助。^_^

    先看点中文的基础教程,然后再看官方网站的文档会好些,(此方法适用于我这种英语半路子的人,英语好的可直接参考官方文档!)


    总的架构图如下:(图片来自互联网)

      

    最开始接触的时候,被leader的操作看蒙圈了,只写了几行代码,修改了一下东西,就出现了效果,好神奇,怎么可以这么简单,比我之前有php写快捷多了。于是,我就开始琢磨着里面的请求原理是什么样的,因为我深信所有web程序请求响应原理都是一样的,都得符合http协议。下面是在网上找的一张图:

     可能我觉得第一次接触还是有些不太明白,配合上面的图解,原理是这样:

    1. 首先客户端(例如浏览器等)通过url访问站点,这里的请求体被打包成了HttpRequest对象,以供其它中间件使用;
    2. 对请求的url地址进行解析,django结构中urls.py就是专门匹配客户端的url地址的,对匹配到的url地址,指定相应的视图模块进行处理;找不到就调用默认的视图处理直接返回一个信息,比如404这种情况;
    3. 然后在view这一层,就可以根据HttpRequest对象中的信息,调用models模块(数据模型->大多是文件或则数据库的写入和读取操作)进行处理了;最后调用templates将要输出的信息render(response)给客户端;

    这里用几个问题:

    session是怎么管理的?

    怎么防止csrf(跨站请求伪造(例如,各种爬虫))?

    对于数据库层次,它又是怎么简化操作的?

    admin这个大仓库怎么修改和订制自己的风格?

    编排顺序和组织方式对它的各个中间件有没有影响?

    它的单元测试使用问题?

    用它做的应用程序时候,web服务器的部署问题?

    等等还有很多小的知识点,感觉每个小知识点都是django框架中的一个组件,都可以另起一片文章写了~(待更新)

    Django框架-Admin组件

    http://www.cnblogs.com/btchenguang/archive/2012/08/29/2655933.html

    http://blog.csdn.net/Java2King/article/details/5308326


    SQLite数据库查看工具:window下SQLite Developer  Linux下:可以直接在python环境中查看,不过在使用的时候需要加载Django的配置文件

    方法如下:

    	import os,django
    	os.environ.setdefault("DJANGO_SETTINGS_MODULE","PROJECT_NAME.settings")
    	django.setup()
    	import xxxapp.models
    
    只知道不行动是纸上谈兵,只行动不思考更像是无头的苍蝇,要知行合一。
  • 相关阅读:
    B. Spreadsheets
    Frequent values 倍增/线段树离散化
    E. Tree Painting 二次扫描换根法
    1405 树的距离之和 二次扫描换根法
    D. Subarray Sorting
    K
    Max answer(单调栈,rmq)
    POJ2823 (单调队列)
    POJ2559(单调栈入门)
    Principles and strategies for mathematics study
  • 原文地址:https://www.cnblogs.com/Spider-spiders/p/5829047.html
Copyright © 2011-2022 走看看