这段时间在做scrapy爬虫,对爬出来的数据基于Django做了统计与可视化,本想部署在腾讯云上玩玩,但是因为以前没有经验遇到了一些问题,在这里记录一下:

首先说下Django的创建与配置:

  1. 创建Django项目: 无论想要将项目创建在哪个文件夹下,都只需要cd到制定的文件夹下执行该命令即可:django-admin startproject babel_scrapy ("babel_scrapy"是项目名称)

  2当然,仅仅创建一个项目是远远不够的,一个Django项目的目录最起码应该是这样的:

  

  1>最上边那个是项目根目录,下边有一个和项目名称同名的文件夹,这个是伴随你项目的创建而同时生成的。

  2>下边那个bscrapy文件夹是项目app,创建项目后是没有的,需要自行创建,整个项目的后台逻辑基本上都在app中实现。

  创建app时,首先应该cd到我们的django项目文件夹下,执行:python manage.py startapp bscrapy ("bscrapy"是我创建的app名称)

  3>在下面有一个staic文件夹,这个文件夹用来存放项目的一些静态文件比如我们导入的js文件,layui文件,或者我们写的css与js文件,

  这个static最开始也是没有的,不过创建这个文件夹不需要命令,只要在项目名上边右键new-->Directory,然后将名称写成static即可,

  当然,创建好的static是无法使用的,需要进行关联配置,这个下边再讲。

  4>下边还有一个templates文件夹用来存放我们写的html模板文件,也需要我们自行创建自行配置。

  5>最后还有个manage.py 这是整个项目的启动文件,是随项目创建时而生成的,一般不需要我们去管,但是如果想要在启动Django项目时掉用某些方法时,可以在manage.py中调用,不过不推荐。

  3下面我们说说配置:

    首先,我们Django启动后肯定是想要访问我们写好的页面,但是html模板文件又在templates文件夹下,所以先配置他:

    我们需要将“ os.path.join(BASE_DIR, "bscrapy/../templates") ” 放在babel_scrapy文件夹下的settings.py的这个地方:

     这样,就可以找到这个文件夹了。

    然后再配置babel_scrapy下的urls.py文件,这个文件,顾名思义,做路由转发的。

    再urls.py中 首先得导入一个文件,就是我们创建得bscrapy这个app下有一个views.py,这个py文件主要是负责后台逻辑实现的。

    在urls.py 这样导入这个views.py  from bscrapy import views

    然后在这里写路由转发:

    这个index 是浏览器上的访问路径,比如 127.0.0.1:8000/index

    这时请求就发到了urls.py处,找到这个index,然后在bscrapy这个app下的views下找这个index方法

    在views.py中先导入这样一句: from django.shortcuts import render 用来重定义,

    然后再写入这个方法,意思是重定向到index.html文件,这时,项目就会找到templates文件夹,在里边找到index.html文件,将其呈现到浏览器上,这是一个页面的访问就结束了

    

    当然,使用bscrapy这个app时,也需要配置,还是在settings.py中,像这样加进去就好了:

    最后,因为html页面有时需要用到类似于layui之类的东西,所以还要配置static文件夹:

          在settings中这样写就可以了:

    这样的话,一个Django项目就搭建起来了

下面时我这次遇到的一些问题和使用到的命令。 

1:centos7关闭与开启防火墙:

  关闭: systemctl stop firewalld

  开启: systemctl start firewalld

  查看状态: systemctl status firewalld

  开机禁用  : systemctl disable firewalld

  开机启用  : systemctl enable firewalld
  重载models数据库的命令:
    python manage.py makemigrations
    python manage.py migrate
2:  Django项目首先需要设定哪些ip可以通过浏览器访问该项目
  在 项目同名的文件夹下的settings.py 中:
  ALLOWED_HOSTS = []  这个列表中可以填写允许访问该项目的ip,如果写“*”就说明允许任意ip访问该项目。
3: 在启动Django项目时 一半情况下是: python manage.py runserver 这样仅仅本机可以访问该项目
  python manage.py runserver 0.0.0.0:443  这样的话是允许所有ip访问该项目。
  而且有一点需要注意,为什么我的端口是443呢?写445行吗? 当然不行,因为我腾讯云上的安全组的安全组规则设置的是对外开放的web服务端口是80和443
  所以应该是只有端口指定为这两个其中之一,才可以访问web服务的,当然,你也可以调整腾讯云上的安全组规则。
如果这三点都注意到了的话,应该你的Django项目也可以正常访问了的。
4: 刚刚写完博客 就出现问题了。。。很无奈
  我在xshell上启动了项目,但是当我关掉xshell后 项目就宕掉了。。。
  #nohup python3  /root/babel_scrapy/manage.py runserver 0.0.0.0:443  >manage.log   2>&1  </dev/null   & 
  这样执行后,退出xshell后程序就不会宕掉了
 
 5: 项目搭建完成后输入 python manage.py 0.0.0.0:443 项目就跑起来了,但是每次起项目时都要输一遍,很麻烦,这时我们可以在pycharm左上角的edit中配置一下就OK了:
         

想了解更多Python关于爬虫、数据分析的内容,欢迎大家关注我的微信公众号:悟道Python

  

创建Django项目并将其部署在腾讯云上的更多相关文章

  1. React项目的打包与部署到腾讯云

    腾讯云送了30天的免费试用,于是有了把react项目部署到上面的想法.项目是默认生成的,只是一个页面,但是这个过程中也遇到了不少麻烦与问题.下面来具体梳理下: create-react-app 来自F ...

  2. 在腾讯云上创建您的SQL Cluster(4)

    版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/255 来源:腾云阁 https://www.qclo ...

  3. Python开发环境(3):使用Eclipse+PyDev插件创建Django项目

    OS:Windows 10家庭中文版,Python:3.6,Eclipse:Oxygen.1a Release (4.7.1a), PyDev:6.3.2,Django:2.0.3 本文展示了怎么使用 ...

  4. 使用cookiecutter创建django项目

    使用cookiecutter创建django项目 下载安装: pip install cookiecutter cookiecutter https://github.com/pydanny/cook ...

  5. Django项目: 项目环境搭建 ---- 一、创建django项目

    项目环境搭建 一.创建django项目 1.创建python虚拟环境 在虚拟机上创建python虚拟环境,因为实际项目部署,实在linux mkvirtualenv -p /usr/bin/pytho ...

  6. python创建Django项目

    创建Django项目 关注公众号"轻松学编程"了解更多. 创建一个HelloDjango项目 GitHub地址:https://github.com/liangdongchang/ ...

  7. 终端指令操作创建Django项目

    需求:通过Django创建一个用户表和权限表. 用户表包括:用户名,邮箱,密码,管理权限. 权限表包括:普通用户,管理用户,超级用户. 权限表和用户表有一对多的关系,即用户表中的每条数据对应权限表中的 ...

  8. 在Eclipse中创建Django项目

    在以前的分享中,我们是在命令行模式下创建Django项目的,那么,如何在IDE中使用Django呢? 本文将介绍如何在Eclipse中创建Django项目. 首先,新建Django项目mysite,如 ...

  9. Python——Pycharm创建Django项目

    一.Django的官网 地址:https://www.djangoproject.com/download/ 注:LTS表示一直在维护的版本,建议是带LTS的版本 二.Pycharm下载Django ...

随机推荐

  1. Jmeter4.0----监控服务器性能(7)

    1.说明 JMeter是一款压力测试工具. 通常在压力测试中我们也需要监控和知道服务器的相关资源情况,jmeter本身不具备这个功能,今天我们主要说一下如何通过JMeter插件来监控服务器CPU.内存 ...

  2. 转 DataGuard环境搭建 (一主一备一级联)

    DataGuard环境搭建 (一主一备一级联) http://blog.itpub.net/30130773/viewspace-2116985/ 1.--------- primary_role / ...

  3. thymeleaf中th:attr用法以及相关的thymeleaf基本表达式

    额,有人写的很好,我直接搬了 thymeleaf中th:attr用法 1.写死的单个属性值添加 th:attr="class=btn" 2.写死的多个属性值添加 th:attr=& ...

  4. 基于JAVA的设计模式之组合模式

    概念 将所有对象组合成一种树形结构,有分支节点.叶子节点,分支节点可以有自己的子节点,子节点可以是分支节点.叶子节点,可以进行增删的操作,而叶子节点不可以.比如文件夹就是一个分支节点,而文件就是一个叶 ...

  5. 开源项目android-uitableview介绍

    在iOS应用中,UITableView应该是使用率最高的视图之一了.iPod.时钟.日历.备忘录.Mail.天气.照片.电话.短信. Safari.App Store.iTunes.Game Cent ...

  6. columns分栏与flex弹性盒模型

    columns  分栏 值:column-width:设置每列的宽度        column-count:设置列数   例:columns{200px 3}   列数和宽度固定        co ...

  7. HDU 3001 Travelling (状压DP,3进制)

    题意: 给出n<=10个点,有m条边的无向图.问:可以从任意点出发,至多经过同一个点2次,遍历所有点的最小费用? 思路: 本题就是要卡你的内存,由于至多可经过同一个点2次,所以只能用3进制来表示 ...

  8. MySQL基础教程——mysql脚本编写

    SQL,结构化查询语言,既是对数据库进行操作的语言,也是数据库脚本文件的扩展名. 要求:新建一个名为 library 的数据库,包含 book.reader 两张表,根据自己的理解安排表的内容并插入数 ...

  9. python处理图片的一些操作

    1.把图片分割成一个个竖条: from PIL import Image gap = 20 img_name = '/home/sensetime/000132_11_4.png' im = Imag ...

  10. SC || Chapter 1

    第一章的重中之重就是这张图吧 (具体参见笔记) ┉┉∞ ∞┉┉┉┉∞ ∞┉┉┉∞ ∞┉┉┉┉∞ ∞┉┉┉┉∞ ∞┉┉┉∞ ∞┉┉┉┉∞ ∞┉┉┉┉∞ ∞┉┉┉∞ ∞┉┉ 区分哪些属性是外部的(面向用户 ...