飞道的博客

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

314人阅读  评论(0)

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 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 项目,并且这个项目是橡皮擦无中生有的一个趣味项目,大家一起学起来吧

相关阅读

  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
  2. Python 游戏世界(更新中,目标文章数 50+,现在订阅,都是老粉)
  3. Python 爬虫小课,精彩 9 讲

今天是持续写作的第 129 / 200 天。
如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家点赞评论收藏

django教程 django中文文档 Django 文档 django需要什么基础 第一个django项目 django建站教程 django框架怎么使用 django组件 在django中创建项目
转载:https://blog.csdn.net/hihell/article/details/115495783
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场