2021-03-24

Django学习笔记

参考https://github.com/phodal/growth-in-action/blob/gh-pages/chapters/chapter1.md

Django应用架构

Django的每一个模块在内部都称之为APP,在每个APP里都有自己的三层结构。

 

这样做不仅可以在开发的时候更容易理解系统,而且可以提高代码的可复用性——因为每一个APP都是独立的应用,在下次使用时我们只需要简单的复制和粘贴。

说了这么多,还不如从一个hello,world开始。

Django hello,world

###安装Django

安装Django之前,我们可以用virtualenv工具来创建一个虚拟的Python运行环境。环境问题是一个很复杂的问题,在我们使用Python的过程中,我们会不断地安装一些库,而这些库可能会有不同的版本。并且在安装Python库的过程中,我们会遇到权限问题——即我们需要超级用户的权限才能将库安装到系统的环境之下。随后在这个软件的生涯中,我们还需要保证这个项目所依赖的模块不会发生变动。而这些都是很棘手的一些事,这时候我们就需要创建一个虚拟的运行环境,而virtualenv就是这样的一个工具。

####virtualenv

安装Python包我们需要用到pip命令,它是Python语言中的一个包管理工具。如果你没有安装的话,可以使用下面的命令来安装:

curl https://bootstrap.pypa.io/get-pip.py | python

在不同的Python环境中,我们可能需要使用不同的pip,如下所示是笔者使用的Python3的pip命令pip3

pip3 install virtualenv

如果是Python2.7的话,对应会有:

pip install virtualenv

需要注意的是这将会安装到Python所在的目录,如我的目录是:

cd d:\python

在创建我们的这个虚拟环境之前,我们可以创建一个存储所有virtualenv的目录:

mkdir virtualenvs

现在,我们就可以创建一个新的虚拟环境,转到对应的目录下:

cd d:\python\virtualenvs
virtualenv project

 

通过到相应的目录下执行激活就可以使用这个虚拟环境了:

cd d:\python\virtualenvs\project\Scripts
activate

停止使用只需要执行下面的命令即可:

deactivate

####安装Django

准备了这么久我们终于要开始安装Django了,执行:

###创建项目

在这些命令中startproject可以用于创建项目,在这里我们的项目名是blog,那么我们的命令如下:

django-admin startproject blog

这个命令将创建下面的文件内容,而这些是Django项目的一些必须文件。

.
├── blog
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

blog目录对应的就是blog这个项目,将会放置这个项目的一些相关配置:

  1. settings.py包含了这个项目的相关配置。如数据库环境、启用的插件等等。
  2. urls.py即URL Dispatcher的配置,指明了某个URL应该指向某个函数来处理。
  3. wsgi.py用于部署。WSGI(Python Web Server Gateway Interface,Web服务器网关接口)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。
  4. __init__.py指明了这是一个Python模块。

manage.py 会在每个Django项目中自动生成,它可以和django-admin做类似的事。如我们可以用manage.py来启动测试环境的服务器:

cd D:\python36\virtualenvs\project1\Scripts\blog

python manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

March 24, 2016 - 03:07:34
Django version 1.9.4, using settings 'blog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Not Found: /
[24/Mar/2016 03:07:35] "GET / HTTP/1.1" 200 1767
Not Found: /favicon.ico
[24/Mar/2016 03:07:36] "GET /favicon.ico HTTP/1.1" 404 1934

现在,我们只需要在浏览器中打开http://127.0.0.1:8000/,便可以访问我们的应用程序。

###Django后台

Django很适合CMS的另外一个原因,就是它自带了一个后台管理系统。为了启用这个后台管理系统,我们需要配置我们的数据库,并创建相应的超级用户。如下所示的是settings.py中的默认数据库配置:

# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

上面的配置中我们使用的是SQLite3作为数据库,并使用了当前目录下的db.sqlite3作为数据库文件。Django内建支持下面的一些数据库:

'django.db.backends.postgresql_psycopg2'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'

如果我们想使用别的数据库,可以在网上寻找相应的解决方案,如用于支持使用MongoDB的django-nonrel项目。不同的数据库有不同的配置,如下所示的是使用PostgreSQL的配置。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

接着,我们就可以运行数据库迁移,只需要运行相应的脚本即可:

python manage.py migrate

Operations to perform:
  Apply all migrations: sessions, admin, auth, contenttypes
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying sessions.0001_initial... OK
(growth-django)

在上面的过程中,我们会创建相应的数据库模型,并依据迁移脚本来创建一些相应的数据,如默认的配置等等。

最后,我们可以创建一个相应的超级用户来登陆后台。

python manage.py createsuperuser

Username (leave blank to use 'fdhuang'): root
Email address: h@phodal.com
Password:
Password (again):
Superuser created successfully.

输入相应的用户名和密码,即可完成创建。然后访问 http://127.0.0.1:8000/admin,输入上面的用户名和密码就可以来到后台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值