1. 新建一个django 项目
1.1 新建django项目
django-admin.py startproject project_name
注意 project_name 是自己的项目名称,需要为合法的 Python 包名,如不能为 1a 或 a-b。
1.2 项目目录结构说明
mysite/
├── manage.py 【项目的管理,启动项目、创建app、数据管理】【不要动】【**常用**】
└── mysite
├── __init__.py
├── settings.py 【项目配置文件】【**常常修改**】
├── urls.py 【URL和函数的对应关系】【**常常修改**】
└── wsgi.py 【接收网络请求】【不要动】
2. 新建app
2.1 新建app
python manage.py startapp app_name
或
django-admin.py startapp app_name
一般一个项目有多个app, 当然通用的app也可以在多个项目中使用。
与项目名类似 app name 也需要为合法的 Python 包名,如 blog,news, aboutus 等都是合法的 app 名称。
2.2 app目录结构说明
app01/
├── admin.py 【固定,不用动】,django默认提供的admin后台管理
├── apps.py 【固定,不用动】,app启动类
├── __init__.py
├── migrations 【固定,不用动】,数据库变更记录
│ └── __init__.py
├── models.py 【**重要**】,对数据库进行操作
├── tests.py 【做单元测试的】【固定,不用动】
└── views.py 【**重要**】,写视图函数
3. 创建数据库表
3.1 创建更改的文件
python manage.py makemigrations
3.2 将生成的py文件应用到数据库
python manage.py migrate
这种方法可以在SQL等数据库中创建与models.py代码对应的表,不需要自己手动执行SQL。
4. 使用开发服务器
开发服务器,即开发时使用,一般修改代码后会自动重启,方便调试和开发,但是由于性能问题,建议只用来测试,不要用在生产环境。
python manage.py runserver
# 当提示端口被占用的时候,可以用其它端口:
python manage.py runserver 8001
python manage.py runserver 9999
(当然也可以kill掉占用端口的进程,lsof )
# 监听机器所有可用 ip (电脑可能有多个内网ip或多个外网ip)
python manage.py runserver 0.0.0.0:8000
# 如果是外网或者局域网电脑上可以用其它电脑查看开发服务器
# 访问对应的 ip加端口,比如 http://172.16.20.2:8000
5. 清空数据库
python manage.py flush
此命令会询问是 yes 还是 no, 选择 yes 会把数据全部清空掉,只留下空表。
6. 创建超级管理员
python manage.py createsuperuser
按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填
修改 用户密码可以用:
python manage.py changepassword username
7.导出/导入数据
# 导出
python manage.py dumpdata appname > appname.json
# 导入
python manage.py loaddata appname.json
8. Django 项目环境终端
python manage.py shell
如果你安装了 bpython 或 ipython 会自动用它们的界面,推荐安装 bpython。
这个命令和 直接运行 python 或 bpython 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。
安装bpython:
python3 -m pip install bpython
9. 数据库命令行
python manage.py dbshell
Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。
在这个终端可以执行数据库的SQL语句。如果您对SQL比较熟悉,可能喜欢这种方式。
10. 更多命令
终端上输入 python manage.py 可以看到详细的列表,在忘记名称的时候特别有用。