本文环境:Python3.6.2,django1.8.16
不同版本的django代码上有所不同,尤其是1.6之前和2.0以后。
django项目新建
1、安装python和某版本的django
2、新建django项目
django-admin startproject ***, cd *** , python3 manage.py startapp ---
3、将app添加到项目中
打开settings.py文件
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'***',
)
在INSTALLED_APPS中增加app,注意后面还要加一个逗号,跟原来保持相同的格式。
4、添加网址
打开urls.py
from django.contrib import admin
from auto import views as auto_views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'****/', auto_views.---, name='---'),
]
前面的url可以随便写,中间是对应的view.py中的方式,访问前面的url就会触发后面的方法
5、项目启动方法
python3 runserver 8080
6、admin管理页面
默认是localhost:8080/admin即可访问
使用命令新建超级用户
python3 manage.py createsuperuser
修改用户密码
python3 manage.py changepassword username
7、进入数据库命令行命令
python3 manage.py dbshell
如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。在这个终端可以执行数据库的SQL语句。
8、django数据库操作
默认的sqlite3配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
mysql数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '***',
'USER': '****',
'PASSWORD': '****',
'HOST': 'localhost',
'PORT': '3306',
}
}
oracle数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': '***',
'USER': '***', #用户名
'PASSWORD': '****', #密码
'HOST': '127.0.0.1', #HOST
'PORT': '1521', #端口
}
}
建表操作
1、通过django建表
这种当时可以完全不去直接操作数据库,通过代码让django自己去生成表,增删改查等操作都不在话下。
建表方法:在models.py文件中新建class,class名就是表名,格式类似
class DjangoSession(models.Model):
session_key = models.CharField(primary_key=True, max_length=40)
session_data = models.TextField()
expire_date = models.DateTimeField()
class Meta:
managed = False
db_table = 'django_session'
代码完成后执行建表命令
python3 manage.py makemigrations
python3 manage.py migrate
连接已有的表
正常的建表操作是先写好我们的class,即定义表的字段等信息,然后根据已有的class信息去建表,这里情况相反,操作过程也是逆向的,我们要先执行命令:
python3 manage.py inspectdb
执行之后django会根据已有的表字段等信息自动为你生成models文件对应的class代码,只要将代码复制到models.py文件中就可以了!
ps:如果本机既安装了python2,又安装了python3,要注意执行命令是选择对应的版本,不然可能会遇到各种奇奇怪怪的问题,毕竟python2和3改动还是很大的,包括各种模块的第三方库的支持。