学习和使用Django


最新版本:3.2
在线文档:Django documentation | Django

好处:组件比较多,开发Web比较方便。

1. 安装Anaconda环境

对Anaconda的介绍如下:

官网:

Anaconda’s open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

维基百科:

Anaconda是一个免费开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda致力于简化软件包管理系统和部署。 Anaconda的包使用软件包管理系统Conda进行管理。 Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。

更多:初学 Python 者自学 Anaconda 的正确姿势是什么? - 知乎

1.1. 下载安装

Window下,直接下载window版本,双击安装即可。window安装好之后,在开始菜单中,可以找到shell。
下载链接:https://www.anaconda.com/products/individual/download-success

※ Anaconda 的下载文件比较大(约 500 MB),因为它附带了 Python 中最常用的数据科学包。

Linux下, 官网下载sh脚本后(Anaconda3-2021.05-Linux-x86_64.sh),执行安装,不需要root权限。
默认的安装位置是:$HOME/anaconda3。Linux版本没有自带shell,直接使用系统的bash或者zsh即可。

安装过程中会输出以下提示信息,即如果不希望默认激活conda环境的话,可以通过对应的命令修改默认设置:

==> For changes to take effect, close and re-open your current shell. <==

If you'd prefer that conda's base environment not be activated on startup,
set the auto_activate_base parameter to false:
conda config --set auto_activate_base false
Thank you for installing Anaconda3!
PyCharm Pro for Anaconda is available at: https://www.anaconda.com/pycharm

1.2. 使用它 (Linux下)

Linux下在安装完成后,可以直接使用conda命令做一些操作,window下,需要打开anaconda的cmd工具。

Note Cmd
创建虚拟环境(可以制定python的版本) conda create -n demo python=3.7.5
激活一个虚拟环境 conda activate demo
退出虚拟环境 conda deactivate
给虚拟环境安装软件包(同样可以制定版本) conda install django==2.1.5
安装pillow conda install pillow

※ 注意:在Linux下,激活了一个虚拟环境,然后在shell里使用gitk或git gui工具的话,软件界面的字体会有些变化,可能是跟系统的某些环境变量有关系【被虚拟环境覆盖了】。

2. 创建Django工程

在安装了django软件包的虚拟环境下面,可以使用django的工具:django-admin来创建工程了。如下,创建了一个hello_django。【可以通过django-admin -h 查看它提供的选项】

这里有官方的英文教程,一步步创建项目:
Writing your first Django app, part 1 | Django documentation | Django

2.1. 创建工程 (project)

django-admin startproject hello_django

它会创建一个新的目录,名字是: hello_django。【注意:django工程的名字不能包含-符号】

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

2.2. 运行server

进入创建的目录(manage.py所在的目录),可以启动server:
python manage.py runserver

※ 可以通过命令python manage.py查看它提供的选项。

运行后,控制台有如下输出,打开浏览器访问: http://localhost:8000 即可。

$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 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.

August 02, 2021 - 00:14:48
Django version 2.1.5, using settings 'hello_django.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

2.3. 创建新的应用 (app)

这里应用相当于一个网站的子目录一样。
python manage.py startapp polls

它会创建一个新的目录,名字是polls,内容如下:

polls
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py

Projects vs. apps, 引用官方文档:

What’s the difference between a project and an app?
An app is a Web application that does something – e.g., a Weblog system, a database of public records or a small poll app.
A project is a collection of configuration and apps for a particular website. A project can contain multiple apps. An app can be in multiple projects.

2.4. 创建试图和添加路由

修改polls/views.py文件,添加第一个试图:

from django.http import HttpResponse

# Create your views here.
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")

修改hello_django/urls.py(工程目录下的urls.py)如下:

from django.contrib import admin
from django.urls import path
# 添加的行,引入polls下面的views模块
from polls import views

urlpatterns = [
path('admin/', admin.site.urls),
# 新添加的路由, 浏览器访问: http://localhost:8000/就能返回我们前面定义的视图
path('', views.index, name='index'),
]

我们也可以给polls应用添加一个urls.py文件:

from django.urls import path
from . import views

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

然后修改工程的urls.py (hello_django/urls.py):

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
# 修改后,访问前面定义的视图需要:http://localhost:8000/polls/
path('polls/', include('polls.urls')),
]

3. 更多内容 【先列出大纲,慢慢完善】

3.1. 使用模板和媒体文件

template
static文件
media文件

3.2. 模板高级用法

3.3. 模型与数据库

3.4. 模型、模板、试图

3.5. 表单

3.6. 用户身份验证

3.7. cookie和session

3.8. Django与Bootstrap的整合

3.9. Django与jQuery的整合

3.10. 自动化测试

3.11. 部署Django项目


文章作者: IT神助攻
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 IT神助攻 !
  目录