专栏首页JackeyGao的博客一个超级小的 Django 项目.

一个超级小的 Django 项目.

一个超级小的 Django 项目.

Posted November 12, 2018

Django 可以支持类似于Flask 一样的单文件项目.

当用最简单的代码实现 Django 项目为最基本的要素的时候, 项目可以和微框架一样小.

但我建议, 最好不要这样做, 因为在选择使用 Django 的时候, 我比较看重的 Django 封装的一系列模块, 我更建议用 Django 官方提供的架构去开始我的工程。

Introduction

首先我们知道, 在我们安装 Django 之后, Django 和其他 Python 包一样, 在site-packages里面, 这意味着 Django 和其他的 Python 包一样(Requests, Pillow, NumPy).

验证 Django 是否安装最简单的方法是到交互式界面导入它

Python

>>> import django
>>> print(django.get_version())
1.11.4

但是我们使用 Django 和使用其他包不一样, 在官方推荐的例子下, 我们开始一个项目首先执行的是startproject

我们执行后, 会初始化创建默认的项目目录结构:

  • manage.py
  • settings.py
  • urls.py
  • wsgi.py

这就是常用的预配置

加入我们要做一个 web 项目, 你可能需要数据库, 处理用户的身份验证, 和会话等功能。 startproject会让我们对这些的处理和配置更加轻松. 而且 Django 默认就提供这些功能, 这让我们能够直接引用.

但这样不是开始项目的唯一方式, 这也是本章的目的。

最小的 Django 程序

app.py

Python

import sys

from django.conf import settings
from django.conf.urls import url
from django.core.management import execute_from_command_line
from django.http import HttpResponse

settings.configure(
    DEBUG=True,
    SECRET_KEY='A-random-secret-key!',
    ROOT_URLCONF=sys.modules[__name__],
)


def index(request):
    return HttpResponse('<h1>A minimal Django response!</h1>')

urlpatterns = [
    url(r'^$', index),
]

if __name__ == '__main__':
    execute_from_command_line(sys.argv)

SECRET_KEY是我们必须要提供的一个参数, DEBUG默认是 False, 没有开启 DEBUG 的情况需要定义ALLOWED_HOSTS配置, 所以我们直接覆盖 DEBUG 为 True. ROOT_URLCONF 是需要包含 URL 列表的特殊模块路径. 其实就是我们项目的urls.py文件. 在这里我们写到一个文件里面了, 所以我们直接定义sys.modules[__name__]表示当前模块, 并在当前文件下面定义urlpatterns列表, 定义的方式和urls.py一样和视图view对应起来.

然后通过execute_from_command_line快捷方式启动, 这个保留了 manage.py 命令的功能.

使用

由于没有其他的APP 在 INSTALLED_APPS里面, 默认情况下只有 django 项目. 所以只有一些最基本的命令功能.

Bash

$ python app.py

Type 'app.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    runserver
    sendtestemail
    shell
    showmigrations
    sqlflush
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    test
    testserver

启动

我们使用 runserver 把程序启动

Bash

$ python app.py runserver

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 全宋词爬取过程及数据分析

    .tagul-attribution { display: none; } .block { padding-bottom: 0 !impo...

    用户1416054
  • Django小技巧20: 使用多个settings模块

    通常来说, 为了保持项目的配置简单,我们会避免使用多个配置文件。但理想很丰满, 现实是随着项目越来越大, settings.py可能也会变得相当复杂. 在那种情...

    用户1416054
  • Django小技巧07: 在模板中获取当前URL

    确保项目配置里的context_processors包含django.template.context_processors.request.

    用户1416054
  • 编写第一个 django 应用

    如果这是你第一次使用 Django 的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个 Django project —— 即一个 Dja...

    公众号---志学Python
  • 如何使用Ubuntu 16.04的Django一键安装镜像

    Django是一个用于快速开发Web应用程序的高级Python框架。Django一键安装程序通过Django,Nginx,Gunicorn和Postgres为您...

    温浪
  • 用django1.11.2版本实现文件上传demo

    之前参考了虫师和纯臻对此的实践博文,但是由于版本迭代问题,最新版本的Django命令已经修改了,我重新完成一份攻略。

    十四君
  • Python学习笔记:创建Python开发Web程序的虚拟环境

    这段时间利用业余时间在断断续续地看Eric Matthes著的《Python编程从入门到实践》这本书,毫不夸张地说,这真的是一本不可多得的好书,将Python从...

    fanjy
  • django基础之一

    程序员同行者
  • Django学习-第一讲(下) Django框架介绍与环境搭建

    Django,发音为[`dʒæŋɡəʊ],Django诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian开发。

    小海怪的互联网
  • Spark Shuffle的技术演进

    本文原文 http://www.leonlu.cc/profession/19-spark-shuffle ,作者 LeonLu

    大数据技术架构

扫码关注云+社区

领取腾讯云代金券