django-初始化举例
制定规范
我们要编写一个名为“学习笔记”的web应用程序,让用户能够记录感兴趣的主题,并在学习每个主题的过程中添加日志条目。
“学习笔记”的主页对这个网站进行描述,并邀请用户注册或登录。
用户登录后,就可以创建新主题、添加新条目、以及阅读既有条目。
建立虚拟环境
虚拟环境是系统的一个位置,可以在其中安装包,并将其与其他Python包隔离。
python -m venv ll_env
# 如上述命令不可用,可安装virtualenv,并使用virtualenv来建立虚拟环境
安装vritualenv
pip install --user virtualenv
或者使用Linux的系统包管理器来安装virtualenv
使用virtualenv建立虚拟环境
virtualenv llenv
激活虚拟环境
# windows
ll_env\Scripts\activate
# linux
source ll_env/bin/activate
# 停止虚拟环境
deactivate # 在虚拟环境中执行
=== 后面的步骤均在活动状态的虚拟环境中执行 ===
安装Django
pip install Django
在Django中创建项目
django-admin startproject learning_log .
# 千万别忘记最后的点,否则部署应用程序时将遭遇一些配置问题,如果忘记,删掉目录重新执行
# 创建如下文件结构
# manage.py - 接受命令并将命令交给Django的相关部分去运行
# learning_log\settings.py - 指定Django如何与系统交互及如何管理项目
# urls.py - 告诉Django应创建那些网页来响应浏览器请求
# wsgi.py - 帮助Django提供它创建的文件(Web Server Gateway Interface)
创建数据库
python manage.py migrate
# 在使用SQLite的新项目中首次执行这个命令,Django将新建一个数据库
# 在执行后,Django创建了db.sqlite3文件
# sqlite是一种使用单个文件的数据库,是编写简单应用程序的理想选择。
启动服务并查看
python manage.py runserver [port] # 端口默认8000
此处常见错误
Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
原因:8000端口被占用
解决:
关闭占用8000端口的程序 https://www.cnblogs.com/PHM64123/p/7639271.html
更改django启动端口 https://www.cnblogs.com/apple2016/p/8127055.html
创建应用程序
Django项目与Django应用程序的关系
Django项目由一系列应用程序组成,它们协同工作,让项目成为一个整体。
创建应用程序
新打开一个终端/cmd窗口,进入ll_env所在目录,激活虚拟环境,执行如下命令
python manage.py startapp learning_logs
# 创建如下文件结构
# learning_logs\models.py
导入了django.db.models模块,且指示在此文件中创建自己的模型。
模型 - 告诉Django如何处理应用程序中存储的数据。
在代码层面,模型就是一个类
models.py其实是使用了ORM(Object Relation Mapping)的思想
添加应用程序到项目
learning_log/learning_log/settings.py
在INSTALLED_APPS元组中添加创建的应用程序learning_logs