django常用命令
新建一个django项目
django-admin startproject 项目名称
启动django项目
python manage.py runserver # 在django默认端口启动<http://127.0.0.1:8000/>
python manage.py runserver 80 # 在80端口启动,指定端口
python manage.py runserver 0.0.0.0:80 # 指定服务器和端口
创建app
python manage.py startapp app名字
创建数据库表、更改字段code first
python manage.py makemigrations命令
python manage.py makemigrations相当于在该app下建立 migrations目录,并记录下你所有的关于models.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件。
pyhton manage.py migrate命令
pyhton manage.py migrate将该改动作用到数据库文件,比如产生table,修改字段的类型等。
从数据库导出到model(db first)
python manage.py inspectdb
清空数据库
python manage.py flush
创建超级管理员
python manage.py createsuperuser
# 修改 用户密码可以用:
python manage.py changepassword username
导出数据 导入数据
# 将数据库数据导出到.json文件
python manage.py dumpdata appname > appname.json
python manage.py dumpdata > appname.json # 将所有数据导入到.json文件
# 将.json文件中的数据更新到数据
python manage.py loaddata appname.json
django项目环境终端
进入项目目录,在命令行输入python manage.py shell
即可进入shell模式,在shell模式下可以试验一些代码是否可以正确执行。方便我们调试。
输入后的显示如下:
先导入要执行的模块,如:
# 查询数据库数据
>>>from apps.user.models import User
>>>User.objects.all()
# 可以通过这种方式调用项目中的某个方法,查看执行情况
数据库命令行
使用python manage.py dbshell
是开启项目数据库的命令。
执行该命令后,可使用命令行执行sql.
django的migrations
在Django应用中,migrations是一系列文件,位于Django应用的migrations目录下,用以存储Django应用中的model类的变化。
每次在Django应用中对model类的修改,都会对应一个migration文件。
我们可以在migrations文件中执行自定义的SQL和python代码
首先我们需要新建一个文件0006_auto_20200149_2463.py
基本代码如下:
执行自定义的SQL语句,在migrations中有RunSQL类,由于执行SQL语句,
注意:dependencies 列表中对应的是上一次文件的文件名,需要修改。
# -*- coding: utf-8 -*-
# Generated by Django 1.11.27 on 2020-01-29 10:42
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('ms_test', '0005_auto_20200139_1564'),
]
operations = [
migrations.RunSQL(
sql="insert into ms_test_person (name, price) values ( 'qi', 12.9 );"
)
]
自定义执行python代码,有一个RunPython
# -*- coding: utf-8 -*-
# Generated by Django 1.11.27 on 2020-01-29 10:42
from __future__ import unicode_literals
from django.db import migrations, models
def foo(apps, schema_editor): # 必传的两个参数
"""
写我们需要执行的python代码
:return:
"""
# 获取model类
Person = apps.get_model('ms_test', 'Person')
Person.objects.create(name='li', price=13.88)
class Migration(migrations.Migration):
dependencies = [
('ms_test', '0007_auto_20200445_2453'),
]
operations = [
migrations.RunPython(foo)
]
最后执行python manage.py migrate 就可以执行我们自定义的SQL或python代码
在django中还有一种可执行脚本是django的commands。点击此处查看