Django框架之环境准备&搭建项目

前言

Python下有多款不同的 Web 框架,Django是最有代表性的一种。许多成功的网站和APP都基于Django。

Django是一个开源的Web应用框架,由Python写成。

一、搭建虚拟环境

方式一(不推荐)

直接使用Pycharm专业版本创建虚拟环境(virtualenv或者pipenv)

方式二(推荐)

手动创建
a.安装pipenv

pip install -i https://pypi.douban.com/simple pipenv

b.创建虚拟环境并进入到虚拟环境中

pipenv shell

1)如果当前路径下,没有虚拟环境,会自动创建,名称为:项目名-随机字符
2)如果在当前路径下,已经创建了虚拟环境,会直接进入到已创建的虚拟环境中
c.将解释器修改为虚拟环境中的解释器
1)查看解释器的路径

pipenv --venv

2)修改解释器
File -> settings -> project -> add -> …

二、搭建django项目工程

1.下载django

pipenv install django

2.创建django项目工程

a.进入到虚拟环境中(pipenv shell)
b.django-admin startproject 项目名 . 把当前所在路径当前项目根路径(嵌套二级),推荐)(在当前所在路径下再创建一个新的项目(嵌套三级),一般不推荐)
c.项目名:一般与所在路径名一致

3.启动django项目

a、进入到虚拟环境中(pipenv shell)
b、python manage.py runserver
默认监听127.0.0.1:8000
c、python manage.py runserver ip:端口(如:python manage.py runserver 127.0.0.1:8888)
d、Pycharm专业版,可以创建启动器(Add Configuration -> 点击+ -> 选择django server ->
输入启动器名称 -> Fix -> 设置项目根路径和setting.py文件)

三、项目目录

1 、同名包内文件

__init__.py     为包文件
asgi.py         用于启动ASGI协议应用服务器的入口文件,在异步项目部署时使用
settings.py     用于存放django的全局配置信息
urls.py         用于创建全局路由信息
wsgi.py         用于启动WSGI协议应用服务器的入口文件,在部署时使用

2、项目根路径下的文件

db.sqlite3      django项目自带的文本型数据库
manage.py       用于管理django项目的命令行工具

3、子应用

1)意义

  • 解耦:将各功能模块保持独立
  • 复用:方便各功能模块进行复用

2)创建
方式一:python manage.py startapp 子应用名称
方式二:Tools -> Run manage.py Task(Pycharm专业版本)
3)注册

  • 在settings.py中INSTALLED_APPS列表进行注册,如果不注册,那么当前模块就不可用
  • 注册方法,有两种
    方式一:‘子应用名’
    方式二:‘子应用名.apps.子应用名首字母大写Config’

4)子应用结构
migrations 用于存放迁移脚本
init.py 为包文件
admin.py 用于配置admin后台管理站点
apps.py 用于配置子应用信息
models.py 用于定义模型类
tests.py 用于定义当前子应用的单元测试逻辑
views.py 用于定义子应用的业务逻辑实现

四、django命令

1.django-admin.py和manage.py区别

django-admin.py和manage.py都是Django的命令集工具,用于处理系统管理相关操作,而manage.py是在创建Django工程时自动生成的,manage.py是对django-admin.py的简单包装,二者的作用基本一致。

区别:

  1. django-admin存放在Python的site-packages\django\bin 里,manage.py存放在项目工程文件夹里。

  2. django-admin可以对不同的项目进行设置,而manege.py只能对当前的工程有效。

2.执行命令的三种方式

$ django-admin <command> [options] 
$ python manage.py <command> [options] 
$ python -m django <command> [options]

应是本文件所列的命令之一,[options]是可选的。

常用子命令:
version:获取当前使用的Django版本(*)
startproject:创建一个项目(*)
startapp:创建一个app(*)
runserver:运行开发服务器(*)
shell:进入django shell(*)
dbshell:进入django dbshell
check:检查django项目完整性
flush:清空数据库
compilemessages:编译语言文件
makemessages:创建语言文件
makemigrations:生成数据库同步脚本(*)
migrate:同步数据库(*)
showmigrations:查看生成的数据库同步脚本(*)
sqlflush:查看生成清空数据库的脚本(*)
sqlmigrate:查看数据库同步的sql语句(*)
dumpdata:导出数据
loaddata:导入数据
diffsettings:查看你的配置和django默认配置的不同之处
manage.py特有的一些子命令:
createsuperuser:创建超级管理员(*)
changepassword:修改密码(*)
clearsessions:清除session

3.常用命令

  1. 获得帮助信息
#显示帮助信息和可用命令
python manege.py help
#显示可用命令列表
python manege.py help --commands
#显示指定命令的详细文档
python manage.py help  #commands为需要指定显示的命令
  1. 获取Django版本
python manage.py version
  1. 创建Django工程
django-admin startproject name [项目想要存放的路径]
  1. 创建Django应用程序
django-admin startapp name [应用想要存放的路径]
python manage.py startapp name
  1. 运行Django项目
#默认是8000端口
python manage.py runserver
#指定IP和端口
python manage.py runserver 127.0.0.1:8000
#指定端口
python manage.py runserver 8000
  1. 启动一个交互窗口
python manage.py shell
#如果想使用ipython、bpython交互模式的话需要先安装以上交互工具,安装命令:pip install ipython
#启用命令
python manage.py shell --i [ipyhton]
  1. 数据库交互
# migrations
# Django通过migrations命令将Models中的任何修改写入到数库中,比如:新增加的模型或修改已有的字段等。

# makemigrations
# 作用:根据models的变化生成对应的Python代码,该代码用于更新数据库
python manage.py makemigrations
python manage.py makemigrations [appname]

# migrate
# 作用:将model里的修改应用到数据库
python manage.py migrate #默认是所有的APP的修改应用到数据库
python manage.py migrate [appname] #指定APP的修改应用到数据库
python manage.py migrate [appname] [migrations_name] #将操作恢复到指定版本

注意:

如果执行migrate的命令同时给了应用程序的名字和migtrations名字,系统会把数据库恢复到之前指定的一个版本。

python manage.py migrate myblog 0001_initial #指定blog应用恢复到0001_initial 这个版本

# 如果想撤销所有的数据库更改,我们可以使用 zero代替 上面的命令:
# 或者:如果数据库里,已经手动更新了数据库,我们只是想设置当前的migration状态,就使用下面的命令去实现,这个命令并不会真正的去更新数据库。
python manage.py migrate blog zero

Django所有的migration信息都保存在django_migrations这个数据库表中,如下图所示:
在这里插入图片描述
8. 输出某一个migrate对应的SQL语句

python manage.py sqlmigrate blog 0001_initial
  1. 显示migrations记录
python manage.py showmigrations 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

克里斯蒂亚诺·罗纳尔达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值