爬虫数据应用场景之Django建站

本文介绍了如何利用爬虫获取的数据,借助Django框架快速搭建一个前后台齐全的网站。从创建虚拟环境、安装Django,到构建网站、创建数据库、添加管理应用,再到展示数据和创建HTML模板,一步步详细讲解了Django入门步骤。
摘要由CSDN通过智能技术生成
点击上方 “AI派 ”, 选择“ 设为星标
最新分享,第一时间送达!


Tango,目前就职在一家对日开发的的IT服务公司。 不是科班出身的我,出于对编程的热爱,自学了软件开发。 从此深深陷入在代码的世界而无法自拔。
编辑:王老湿

我们的专栏发布后,目前已经更新了 12 篇:

前面所有的文章都是在介绍我们如何获取数据,当我们有了数据之后,我们可以做些什么事情呢?

  • 可以用获取到的图片做机器学习的训练数据

  • 可以用获取的商品,招聘等信息做数据分析,看看什么卖的好,什么职位工资高。

  • 可以用获取到的数据搭建自己的网站。比如各种搜索网站。

关于机器学习,数据分析大家可以查看一下我们这些专栏:

今天,就带着大家一起看看如何用Django快速搭建一个前后台齐全的网站。

搭建环境

  • 在工作目录下创建一个Pyweb的文件夹,用来保存代码。当然,这个目录的名字你可以任意取,但不要有中文和特殊符号

  • 在Pyweb文件夹下面创建一个env的文件夹,这个文件夹就是虚拟机的名,通过如下命令创建虚拟机。

    cd env
    python -m venv .
    

注意venv和 . 之间有一个空格。

这里演示的是在Windows系统下的创建方式,其他操作系统大家自行搜索一下。ls可以换成dir

640?wx_fmt=png
  • 激活虚拟环境

    Scripts\activate
    

    640?wx_fmt=png

    激活成功后,会看到在命令行前面会多出一些内容。

输入deactivate可以退出虚拟环境。

  • 安装Django库

    在虚拟环境下输入如下命令,安装Django框架

    pip install django
    

    如果速度慢的话,可以换成国内的源

    pip install django -i https://pypi.mirrors.ustc.edu.cn/simple/
    

    640?wx_fmt=png

这样环境就创建好了,接下来创建我们的网站。下面的所有操作都是在虚拟机内完成的。

创建网站

  • 为了方便代码管理,回到Pyweb目录下,通过如下命令来创建一个叫做mysite的DJnago网站。

    django-admin startproject mysite
    

    640?wx_fmt=png

可以看到会自动生成一个mysite的目录,里面的目录结构如下:

640?wx_fmt=png
  • 工程创建好后,再创建一个应用movie:

    python manage.py startapp movie
    

    创建成功后的目录结构如下:

    640?wx_fmt=png
  • 应用创建好之后我们要将它添加到这个工程之中,修改settings.py文件

    INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'movie', # 新加的应用
    ]
    
  • 应用添加好之后,还要为这个应用创建一个数据库表,用来保存爬取或者要展示的内容。修改movie目录下的models.py

    from django.db import models
    
    # Create your models here.
    class Movie(models.Model):
      name = models.CharField(max_length=50, verbose_name='电影名')
      url = models.URLField(verbose_name='电影路径', max_length=200)
      desc = models.TextField(verbose_name='电影描述')
    
      def __str__(self):
          return self.name
    
      class Meta:
          verbose_name = '电影信息'
          verbose_name_plural = '电影信息'
    

    为这个应该添加了3个字段,并且定义了它在后台的名称为“电影信息”

  • 将这个应用添加到后台,方便之后的管理。修改admin.py

    from django.contrib import admin
    from .models import Movie
    
    # Register your models here.
    admin.site.register(Movie)
    

    完成这些后,还差最后一步,创建数据库和管理员信息。

    同步数据

     python manage.py makemigrations
    

    640?wx_fmt=png


    python manage.py migrate
    

    640?wx_fmt=png

    发现除了我们定义的应用的表,还有很多其他的,这些都是Djnago框架自带的表。暂时不用太在意。

  • 创建管理员账号

     python manage.py createsuperuser
    

    640?wx_fmt=png

    这里输入完命令后,按照提示一步一步的输入就好。

  • 启动网站

    python manage.py runserver
    

    640?wx_fmt=png

    启动成功后,在浏览器中输入红框中的网址,将看到如下画面。表示这个网站已经创建成功了。

    640?wx_fmt=png

我们进入后台看看,在url后面输入/admin看到如下画面:

640?wx_fmt=png

输入我们刚才创建好的管理员用户和密码:

640?wx_fmt=png

可以看到这个应用出现在了后台,可以点击右边的add来添加几条数据。

640?wx_fmt=png
640?wx_fmt=png

我这里是手动填写的,大家可以通过爬虫获取到数据,自动添加数据。另外这里用的是sqlite数据库。关于这个数据库,大家可以上网查一下用法。不明白的地方欢迎大家进群讨论。

现在数据有了,该如何显示呢?

显示数据

  • 创建用于显示数据的模板

    创建一个templates的文件夹,用来保存html模板,创建好的目录结构:

    640?wx_fmt=png

创建好了文件夹,要将它添加到工程中,并告诉程序这个是保存页面模板的,修改settings.py文件:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], # 修改的地方
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
  • 创建业务逻辑,修改movie文件夹下的views.py文件

    from django.shortcuts import render
    from .models import Movie
    
    # Create your views here.
    def Index(request):
      movie_list = Movie.objects.all() # 查询所有数据
      return render(request, 'index.html', {'movie_list':movie_list})
    

    index.html是稍后要创建的html文件,用来显示数据的。

    {'movie_list':movie_list}是告诉页面都显示什么数据,这里将获取到的所有电影信息都显示在页面上。

  • 告诉项目,我们访问什么路径,来显示电影信息,修改和settings.py同级目录下的urls.py文件

    from django.contrib import admin
    from django.urls import path
    from movie.views import Index
    
    urlpatterns = [
      path('admin/', admin.site.urls),
      path('info/', Index, name='info'),
    ]
    
  • 在templates文件夹下创建html文件

    <html>
      <head>
          <title>电影信息</title>
      </head>
      <body>
          <ul>
              {% for movie in movie_list %}
                  <li>
                      <a href="{{movie.url}}" target="blank">{{movie.name}}</a>
                  </li>
              {% endfor %}
          </ul>
      </body>
    </html>
    

    这里的{%%}等内容是Django的模板语言,大家可以看看官方文档,这里就不详细说明了。

    访问:http://127.0.0.1:8000/info/

    640?wx_fmt=png

这样我们的信息就显示在了页面上了。

我们这里只是简单的介绍了一下Django框架的入门用法,如果大家要深入学习的话,可以买一些书来看。或者关注公众号,后续可能会有相关的内容哦。如果有什么疑问,欢迎大家来群里讨论。

最后的话

感谢大家对本专栏的支持,这是我第一次写专栏内容,有很多不足的方法希望大家见谅。同时也正是因为大家的支持,才能使我坚持把这个专栏完成。

我们的专栏目的是让大家对爬虫有个初步的认识。如果想真正在公司或面试中做到出类拔萃,还需要大家多多练习,同时也希望大家持续关注我们,后续我们还会推出更有意思,更有价值的内容。我们不见不散。

好了,这期的内容就是这些,欢迎大家进学习群讨论。学习群加入方式:扫描下方的微信二维码,添加微信好友,之后统一邀请你加入学习群。添加好友时一定要备注:爬虫。 

640?wx_fmt=png

?长按识别,添加王老湿微信

(完)





640?wx_fmt=jpeg

?关注“Python与人工智能社区”


王老湿目前建立了Python、爬虫、数据分析、机器学习、AI实战、自然语言处理、计算机视觉、推荐系统等方向的读者交流群,大家可以添加王老湿的微信进行加群

640?wx_fmt=png
?长按识别,添加王老湿微信



近期专栏推荐 (点击下方标题即可跳转)


1. 

2. 

3. 

4. 


点下「在看」,给文章盖个戳吧!?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值