本文環(huán)境: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、添加網(wǎng)址
打開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可以隨便寫,中間是對應(yīng)的view.py中的方式,訪問前面的url就會觸發(fā)后面的方法
5、項目啟動方法
python3 runserver 8080
6、admin管理頁面
默認(rèn)是localhost:8080/admin即可訪問
使用命令新建超級用戶
python3 manage.py createsuperuser
修改用戶密碼
python3 manage.py changepassword username
7、進入數(shù)據(jù)庫命令行命令
python3 manage.py dbshell
如果是 MySQL 或 postgreSQL,會要求輸入數(shù)據(jù)庫用戶密碼。在這個終端可以執(zhí)行數(shù)據(jù)庫的SQL語句。
8、django數(shù)據(jù)庫操作
默認(rèn)的sqlite3配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
mysql數(shù)據(jù)庫配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '***',
'USER': '****',
'PASSWORD': '****',
'HOST': 'localhost',
'PORT': '3306',
}
}
oracle數(shù)據(jù)庫配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': '***',
'USER': '***', #用戶名
'PASSWORD': '****', #密碼
'HOST': '127.0.0.1', #HOST
'PORT': '1521', #端口
}
}
建表操作
1、通過django建表
這種當(dāng)時可以完全不去直接操作數(shù)據(jù)庫,通過代碼讓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'
代碼完成后執(zhí)行建表命令
python3 manage.py makemigrations
python3 manage.py migrate
連接已有的表
正常的建表操作是先寫好我們的class,即定義表的字段等信息,然后根據(jù)已有的class信息去建表,這里情況相反,操作過程也是逆向的,我們要先執(zhí)行命令:
python3 manage.py inspectdb
執(zhí)行之后django會根據(jù)已有的表字段等信息自動為你生成models文件對應(yīng)的class代碼,只要將代碼復(fù)制到models.py文件中就可以了!
ps:如果本機既安裝了python2,又安裝了python3,要注意執(zhí)行命令是選擇對應(yīng)的版本,不然可能會遇到各種奇奇怪怪的問題,畢竟python2和3改動還是很大的,包括各種模塊的第三方庫的支持。