Tango,目前就职在一家对日开发的的IT服务公司。 不是科班出身的我,出于对编程的热爱,自学了软件开发。 从此深深陷入在代码的世界而无法自拔。编辑:王老湿
我们的专栏发布后,目前已经更新了 12 篇:
前面所有的文章都是在介绍我们如何获取数据,当我们有了数据之后,我们可以做些什么事情呢?
可以用获取到的图片做机器学习的训练数据
可以用获取的商品,招聘等信息做数据分析,看看什么卖的好,什么职位工资高。
可以用获取到的数据搭建自己的网站。比如各种搜索网站。
关于机器学习,数据分析大家可以查看一下我们这些专栏:
今天,就带着大家一起看看如何用Django快速搭建一个前后台齐全的网站。
搭建环境
在工作目录下创建一个Pyweb的文件夹,用来保存代码。当然,这个目录的名字你可以任意取,但不要有中文和特殊符号。
在Pyweb文件夹下面创建一个env的文件夹,这个文件夹就是虚拟机的名,通过如下命令创建虚拟机。
cd env python -m venv .
注意venv和 . 之间有一个空格。
这里演示的是在Windows系统下的创建方式,其他操作系统大家自行搜索一下。ls可以换成dir
激活虚拟环境
Scripts\activate
激活成功后,会看到在命令行前面会多出一些内容。
输入deactivate可以退出虚拟环境。
安装Django库
在虚拟环境下输入如下命令,安装Django框架
pip install django
如果速度慢的话,可以换成国内的源
pip install django -i https://pypi.mirrors.ustc.edu.cn/simple/
这样环境就创建好了,接下来创建我们的网站。下面的所有操作都是在虚拟机内完成的。
创建网站
为了方便代码管理,回到Pyweb目录下,通过如下命令来创建一个叫做mysite的DJnago网站。
django-admin startproject mysite
可以看到会自动生成一个mysite的目录,里面的目录结构如下:
工程创建好后,再创建一个应用movie:
python manage.py startapp movie
创建成功后的目录结构如下:
应用创建好之后我们要将它添加到这个工程之中,修改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
python manage.py migrate
发现除了我们定义的应用的表,还有很多其他的,这些都是Djnago框架自带的表。暂时不用太在意。
创建管理员账号
python manage.py createsuperuser
这里输入完命令后,按照提示一步一步的输入就好。
启动网站
python manage.py runserver
启动成功后,在浏览器中输入红框中的网址,将看到如下画面。表示这个网站已经创建成功了。
我们进入后台看看,在url后面输入/admin看到如下画面:
输入我们刚才创建好的管理员用户和密码:
可以看到这个应用出现在了后台,可以点击右边的add来添加几条数据。
我这里是手动填写的,大家可以通过爬虫获取到数据,自动添加数据。另外这里用的是sqlite数据库。关于这个数据库,大家可以上网查一下用法。不明白的地方欢迎大家进群讨论。
现在数据有了,该如何显示呢?
显示数据
创建用于显示数据的模板
创建一个templates的文件夹,用来保存html模板,创建好的目录结构:
创建好了文件夹,要将它添加到工程中,并告诉程序这个是保存页面模板的,修改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/
这样我们的信息就显示在了页面上了。
我们这里只是简单的介绍了一下Django框架的入门用法,如果大家要深入学习的话,可以买一些书来看。或者关注公众号,后续可能会有相关的内容哦。如果有什么疑问,欢迎大家来群里讨论。
最后的话
感谢大家对本专栏的支持,这是我第一次写专栏内容,有很多不足的方法希望大家见谅。同时也正是因为大家的支持,才能使我坚持把这个专栏完成。
我们的专栏目的是让大家对爬虫有个初步的认识。如果想真正在公司或面试中做到出类拔萃,还需要大家多多练习,同时也希望大家持续关注我们,后续我们还会推出更有意思,更有价值的内容。我们不见不散。
好了,这期的内容就是这些,欢迎大家进学习群讨论。学习群加入方式:扫描下方的微信二维码,添加微信好友,之后统一邀请你加入学习群。添加好友时一定要备注:爬虫。
?长按识别,添加王老湿微信
(完)
?关注“Python与人工智能社区”
王老湿目前建立了Python、爬虫、数据分析、机器学习、AI实战、自然语言处理、计算机视觉、推荐系统等方向的读者交流群,大家可以添加王老湿的微信进行加群
近期专栏推荐 (点击下方标题即可跳转)
1.
2.
3.
4.
点下「在看」,给文章盖个戳吧!?