用Django框架搭载web(基础)

编译环境:python v3.5.0, mac osx 10.11.4

python爬虫基础知识: Python爬虫学习-基础爬取
python爬虫进阶知识: Python爬虫学习-爬取大规模数据
python爬虫信息处理: Python爬虫学习-大数据统计分析(基础)

了解Django web框架

  • Django安装
    pip3 install django

  • Django的MTV模型
    model(M):控制信息存储结构-数据库
    template(T):UI框架,用户可视界面
    views(V):连接model层与template的层,通过访问信息可以通过访问model层调配信息填充到template层,完成最终可视化页面(web页面)展示。


    用Django框架搭载web(基础)_第1张图片

    项目接受用户请求(request),首先通过views识别请求信息,之后从models层利用models层包含的方法提取数据,填充到template层中的对应位置,最后返回(response)给用户。

  • Django项目创建
    利用Pycharm创建:

    用Django框架搭载web(基础)_第2张图片

    命令行创建见:创建指南
    创建完成后会出现Django项目开发的基本结构:
    用Django框架搭载web(基础)_第3张图片

  • 创建站点,即创建Django web框架的MTV模型
    终端输入:
    python3 manage.py startpap name


    用Django框架搭载web(基础)_第4张图片
  • 运行站点

    首先,我们要把我们的站点名称加入在我们之前创建的django项目的settings.py文件中的INSTALLED_APPS中。
    用Django框架搭载web(基础)_第5张图片
    之后,终端输入:

    python3 manage.py runserver # 运行Django站点


    用Django框架搭载web(基础)_第6张图片
    在浏览器中输入上述站点地址,则可以返回我们创建站点的页面。
    用Django框架搭载web(基础)_第7张图片

利用Django web搭建简单的静态页面

  • 目标效果:
  • 页面html与css文件下载:Github
  • 操作流程:
  1. 我们首先通过上述创建流程创建一个叫Django_learning的项目,再在该项目下创建django_web的站点。
  2. 我们将下载下来的html文件放入django_web站点的template中,将css、img等与样式相关的文件打包放入static文件夹中。
    用Django框架搭载web(基础)_第8张图片
  3. 首先,我们要在views层编译页面调配函数。
    用Django框架搭载web(基础)_第9张图片

    此函数可以根据request(请求)通过render渲染函数将我们编译好的html文件(index.html)返回给浏览器,即用户浏览时的页面。

  4. 之后我们要在url文件中给我们新建的html文件分配地址。
    用Django框架搭载web(基础)_第10张图片

    通过引入views中的pure_index(我们上述编辑的返回函数),url给此函数分配了一个以index/结尾的地址。即:当我们输入xxxindex/时,浏览器会通过pure_index函数获得页面。

  5. 配置css样式文件地址。我们若直接运行站点会出现如下页面:
    用Django框架搭载web(基础)_第11张图片

    我们发现上述页面的css样式文件没有导入,因此我们首先要在setting.py文件中表明static样式文件的地址。


    用Django框架搭载web(基础)_第12张图片
    之后我们要在html文件中声明我们导入的static:
    并改变其中引入图片的地址:

    通过上述操作,我们就可以获得正常加载的web页面了。

  6. 使用render函数,往html文件中填充内容。


    用Django框架搭载web(基础)_第13张图片

    我们可以通过编辑context的内容,向html中传入信息。如:

    web原始界面:
    用Django框架搭载web(基础)_第14张图片
    编辑pure_index函数,填入传入的信息(传入变量的名称为item_info,变量值为this is an example):
    用Django框架搭载web(基础)_第15张图片
    编辑对应的html内容,由{{}}括起来的为变量名称:
    用Django框架搭载web(基础)_第16张图片

    经过上述修改后,我们可以呈现我们想要的信息:


    用Django框架搭载web(基础)_第17张图片

利用Django web搭建简单的动态页面(具有分页功能)

  • 目标效果:
    用Django框架搭载web(基础)_第18张图片
  • 具体操作
  1. 在setting.py文件中利用**第三方库mongoengine **连接我们所需的数据库(即:之前爬取的数据)
    用Django框架搭载web(基础)_第19张图片
  2. 构建Django的model层,即编辑models.py文件。通过继承Document类,将数据库的底层操作转化为更加python化的操作。
    用Django框架搭载web(基础)_第20张图片

    通过上述代码可以通过ItemInfo.objects这种python访问属性的形式访问所有数据库中的信息。如:
    用Django框架搭载web(基础)_第21张图片
  3. 将数据操作导入views.py,利用render函数填充到html文件中。
    用Django框架搭载web(基础)_第22张图片

    同时我在可以在html中使用for循环来自动生成网页元素。


    用Django框架搭载web(基础)_第23张图片
    效果页面:
    用Django框架搭载web(基础)_第24张图片
  4. 增加分页功能,Django中的Paginator函数实现。Paginator的基本使用:
    用Django框架搭载web(基础)_第25张图片
    request.GET与request.GET.get:首先运用request.GET方式,我们可以以?分割所请求的url。再通过get方式获取服务器端用Request.QueryString获取变量的值。
    用Django框架搭载web(基础)_第26张图片

    最终效果:
    用Django框架搭载web(基础)_第27张图片

All source code can be downloaded at GitHub: Jacobkam

你可能感兴趣的:(用Django框架搭载web(基础))