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

举报
梦想橡皮擦 发表于 2021/08/26 08:38:49 2021/08/26
【摘要】 橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。 十一、Django 销售打分系统这是一个崭新的创造项目,项目的需求是这样的,每次售楼的小姐姐打完电话之后,都可以给被打电话的人,打个分数标记一下。这是一波满分的反向操作,销售给客户打分。需求来了之后,剩下的咱就把它实现了。采用的技术依旧是 Django。 11.1 复盘 Django滚雪球学 Python 第三...

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 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_defaults
from 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 runserver
Watching for file changes with StatReloader
Performing 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

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

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 path
from . import views

urlpatterns = [
    path("", views.index, name="index")
]

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

from django.contrib import admin
from 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 项目,并且这个项目是橡皮擦无中生有的一个趣味项目,大家一起学起来吧


今天是持续写作的第 129 / 200 天。
博主 ID:梦想橡皮擦,希望大家点赞评论收藏

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。