写点什么

销售 小姐姐 给买家打分系统,用 Python Django 又整了一个花活

发布于: 52 分钟前

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。


十一、Django 销售打分系统

这是一个崭新的创造项目,项目的需求是这样的,每次售楼的小姐姐打完电话之后,都可以给被打电话的人,打个分数标记一下。这是一波满分的反向操作,销售给客户打分。


需求来了之后,剩下的咱就把它实现了。采用的技术依旧是 Django。

11.1 复盘 Django

滚雪球学 Python 第三轮已经整理了 10 篇文章,相信你对 Django 已经有了整体的认知,这次滚雪球预计滚 21 篇博客,形成已经过半啦。


Django 是基于 Python 语言的 Web 框架,基于 BSD 协议,完全开源,github 地址:https://github.com/django/django,官网地址:https://www.djangoproject.com/,这些都要牢记于心。


对于版本官方详细的解释在该地址:https://www.djangoproject.com/download/


Django is available open-source under the BSD license. We recommend using the latest version of Python 3. The last version to support Python 2.7 is Django 1.11 LTS. See the FAQ for the Python versions supported by each version of Django. Here’s how to get it:


如果希望获得长期支持版本,选择版本号后面带 LTS 的版本即可。目前长期支持的版本是 3.2 版本。


在之前的博客中你已经可以运行起来一个 Django 站点了,但是对于底层的协议,我们没有过多的涉及,其实这些工作都是 WSGI 接口实现的,我们也可以自行实现该功能,也就是手动编写一个 Web 框架,创建一个 Python 文件,写入如下代码:


from wsgiref.util import setup_testing_defaultsfrom wsgiref.simple_server import make_server
def my_server(environ, start_response): setup_testing_defaults(environ=environ) status = "200 OK"
headers = [("Content-type", "text/html;charset=utf-8")] start_response(status, headers)
url = environ["PATH_INFO"]
response = "" if url == "/home": response = "首页" elif url == "/about": response = "关于页" else: response = "访问地址不正确"
return [response.encode("utf-8")]
if __name__ == '__main__': httpd = make_server("", 8000, my_server) httpd.serve_forever()
复制代码


编译代码之后,就会在本地构建出一个小型的服务器,此时在浏览器访问 http://127.0.0.1:8000/home 就可以获得返回的数据内容了。Django 也是基于上述几行简单的代码,实现的一个重量级 Web 框架。


再见 Django 的 MVT 模式框架该模式是 Django 框架的基础模式,核心是下述内容:


  • Model:对象关系映射;

  • View:业务逻辑,串联 ModelTemplate

  • Template:展示数据。

11.2 小姐姐打分系统框架初见

创建一个 Django 项目,咱们已经轻车熟路了,使用下述命令:


django-admin startproject cutegirl
复制代码


创建完毕之后,通过 cd cutegirl 进入目录,然后通过 python manage.py runserver 运行项目。


这里要补充一个知识是:


cutegirl>python manage.py runserverWatching for file changes with StatReloaderPerforming system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.Run 'python manage.py migrate' to apply them.
复制代码


上述内容中,存在一个提示 You have 18 unapplied migration(s),暂时忽略该提示即可,当然提示下面也给出了解决办法,就是使用 python manage.py migrate 去同步数据库信息。


cutegirl 目录中,创建 scoring 应用,命令如下:


python manage.py startapp scoring
复制代码


整体运行完毕,打分系统的基础框架已经构建完毕了,目录结构如下图所示:


![销售小姐姐给买家打分系统,用 Python Django 又整了一个花活](https://img-blog.csdnimg.cn/20210407213644267.png#pic_center =200x)

11.3 串联第一个页面

目录结构搭建完毕之后,就可以进入到 Django 的编码环节中了,首先从 MVT 中的 V 开始,因为它起到了连接的作用。


修改 scoring/views.py 文件代码:


from django.http import HttpResponse
# 打分系统首页def index(request): return HttpResponse("小姐姐打分系统")
复制代码


scoring 文件夹中创建 urls.py 文件,并编写代码如下:


from django.urls import pathfrom . import views
urlpatterns = [ path("", views.index, name="index")]
复制代码


同步修改 cutegirl/urls.py 文件代码:


from django.contrib import adminfrom django.urls import path, include
urlpatterns = [ path("scoring/", include("scoring.urls")), path('admin/', admin.site.urls),]
复制代码


基础配置完毕,打分系统的第一个页面已经可以预览了,访问地址为:http://127.0.0.1:8000/scoring/


11.4 初始化数据库

接下来解决刚才遗留的一个问题,每次运行 python manage.py runserver 都会提示错误的问题。在 cutegirl 文件夹中使用如下命令即可。


cutegirl>python manage.py migrate
复制代码


默认生成的数据表是依据 setting.py 中下述配置进行生成的:


INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles']
复制代码


具体说明如下:


  • django.contrib.admin:管理员数据;

  • django.contrib.auth:认证授权数据;

  • django.contrib.contenttypes:内容类型框架;

  • django.contrib.sessions:Session 会话;

  • django.contrib.messages:消息框架;

  • django.contrib.staticfiles:静态文件。


此时使用 Sqlite3 数据库查看工具,即可查看生成的数据表。


11.5 本篇博客小节

本篇博客开始,我们将再次学习到一个新的 Django 项目,并且这个项目是橡皮擦无中生有的一个趣味项目,大家一起学起来吧


博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。


发布于: 52 分钟前阅读数: 2
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
销售 小姐姐 给买家打分系统,用 Python Django 又整了一个花活