第18章 Django 入门
18.1建立项目
要以规范的方式对项目进行描述,再建立虚拟环境,以便在其中创建项目
18.1.1 制定规范
完整的规范详细说明了项目的目标,阐述了项目的功能,并讨论了项目的外观和用户界面。
与任何良好的项目规划和商业计划书一样,规范应突出重点,帮助避免项目偏离轨道。
本次实现内容::
我们要编写一个名为“学习笔记”的Web应用程序,让用户能够记录感兴趣的主
题,并在学习每个主题的过程中添加日志条目。“学习笔记”的主页对这个网站进行描
述,并邀请用户注册或登录。用户登录后,就可创建新主题、添加新条目以及阅读既
有的条目
18.1.2 建立虚拟环境
[root@bogon ~]# cd /opt/
[root@bogon opt]# mkdir learning_log
[root@bogon opt]# cd learning_log/
[root@bogon learning_log]# pwd
/opt/learning_log
[root@bogon learning_log]# python3 -m venv ll_env
[root@bogon learning_log]# ls
ll_env
[root@bogon learning_log]# ll ll_env/
总用量 4
drwxr-xr-x 2 root root 173 10月 17 15:10 bin
drwxr-xr-x 2 root root 6 10月 17 15:10 include
drwxr-xr-x 3 root root 23 10月 17 15:10 lib
lrwxrwxrwx 1 root root 3 10月 17 15:10 lib64 -> lib
-rw-r–r-- 1 root root 84 10月 17 15:10 pyvenv.cfg
[root@bogon learning_log]#
如果可行就执行 source ll_env/bin/activate
写入linux环境变量 cd /opt/learning_log && source ll_env/bin/activate
如果服务器多个python版本,可以在使用时调用下述脚本即可
cat /opt/py3_vent.sh
#!/bin/bash
source /opt/py3/bin/activate
如果上述操作会出问题 即:
如果你使用的是较早的Python版本,或者系统没有正确地设置,不能使用模块venv,可安装
virtualenv包
pip install --user virtualenv
virtualenv ll_env
如果你的系统安装了多个Python版本,需要指定virtualenv使用的版本。例如,命令
virtualenv ll_env --python=python3创建一个使用Python 3的虚拟环境。
然后再进行环境生效source ll_env/bin/activate
要停止使用虚拟环境,可执行命令deactivate
deactivate
Windows系统配置环境
Django
下载地址 https://media.djangoproject.com/releases/3.2/Django-3.2.7.tar.gz
路径
C:\Django-3.2.7\Django-3.2.7\scripts进入项目目录,启动一个django项目
PS E:\person\Django> C:\Python37\python.exe C:\Django-3.2.7\Django-3.2.7\django\bin\django-admin.py startproject HelloWorld PS E:\person> cd E:\person\chapter\web_application\learning_log\
PS E:\person\chapter\web_application\learning_log> & C:/Python37/python.exe -m venv ll_env
PS E:\person\chapter\web_application\learning_log> E:\person\chapter\web_application\learning_log\ll_env\Scripts\activate
PS E:\person\chapter\web_application\learning_log> & C:/Python37/python.exe -m pip install Django
18.1.6 在Django中创建项目
linux下
(ll_env) [root@bogon learning_log]# django-admin.py startproject learning_log .
(ll_env) [root@bogon learning_log]# ll
总用量 4
drwxr-xr-x 2 root root 89 10月 17 15:29 learning_log
drwxr-xr-x 5 root root 74 10月 17 15:10 ll_env
-rwxr-xr-x 1 root root 668 10月 17 15:29 manage.pywindows下PS E:\person\chapter\web_application\learning_log> C:\Python37\python.exe C:\Django-3.2.7\Django-3.2.7\django\bin\django-admin.py startproject learning_log .
18.1.7 创建数据库
linux
查看当前sqlite版本
(ll_env) [root@bogon tmp]# sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
(ll_env) [root@bogon sqlite-autoconf-3090100]# rpm -ql sqlite-3.7.17-8.el7_7.1.x86_64
/usr/bin/sqlite3
/usr/lib64/libsqlite3.so.0
/usr/lib64/libsqlite3.so.0.8.6
/usr/share/doc/sqlite-3.7.17
/usr/share/doc/sqlite-3.7.17/README
/usr/share/man/man1/sqlite3.1.gz##### 安装
wget https://www.sqlite.org/2015/sqlite-autoconf-3090100.tar.gz --no-check-certificate
(ll_env) [root@bogon tmp]# tar xf sqlite-autoconf-3090100.tar.gz
(ll_env) [root@bogon tmp]# cd sqlite-autoconf-3090100
(ll_env) [root@bogon sqlite-autoconf-3090100]# ./configure --prefix=/usr/local/sqlite3
(ll_env) [root@bogon sqlite-autoconf-3090100]# make && make install
##### 替换
(ll_env) [root@bogon sqlite-autoconf-3090100]# mv /usr/bin/sqlite3 /usr/bin/sqlite3_3.7bak
(ll_env) [root@bogon sqlite-autoconf-3090100]# ln -s /usr/local/sqlite3/bin/sqlite3 /usr/bin/sqlite3
##### 创建数据库:: 如果报错请修改报错文件中限制版本的函数,我安装了3.9,但是执行时还是去找3.7版本的sqlite
python manage.py migrate
(ll_env) [root@localhost learning_log]# ll
总用量 44
-rw-r--r-- 1 root root 40960 10月 17 16:39 db.sqlite3
drwxr-xr-x 3 root root 108 10月 17 15:47 learning_log
drwxr-xr-x 5 root root 74 10月 17 15:10 ll_env
-rwxr-xr-x 1 root root 668 10月 17 15:29 manage.py
当然,也可以在linux上编写环境变量
export PATH=$HOME/opt/sqlite/bin:$PATH
export LD_LIBRARY_PATH=$HOME/opt/sqlite/lib
export LD_RUN_PATH=$HOME/opt/sqlite/libwindows
PS E:\person\chapter\web_application\learning_log> C:\Python37\python.exe E:\person\chapter\web_application\learning_log\learning_log\manage.py migrate
18.1.8 查看项目
linux
(ll_env) [root@localhost learning_log]# python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
October 17, 2021 - 08:40:40
Django version 3.2.8, using settings 'learning_log.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.windows
PS E:\person\chapter\web_application\learning_log> C:\Python37\python.exe E:\person\chapter\web_application\learning_log\learning_log\manage.py runserver
18.2