python初学-04django(数据库,模型)
来源:互联网 发布:淘宝店怎么开 编辑:程序博客网 时间:2024/05/18 08:36
一、配置数据库
在winter下的settings.py
文件,默认是:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }}
如果需要配置其他数据库:ENGINE
–值及对应库
'django.db.backends.sqlite3':sqlite3数据库
,
'django.db.backends.postgresql':
postgresql
数据库,
'django.db.backends.mysql':mysql数据库
,
'django.db.backends.oracle'
. oracle数据库
其他值可参考
使用其他库的参数
举例:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': '127.0.0.1', 'PORT': '5432', }}
二、installed_apps简述设置在文件的顶部的installed_apps。管理着当前项目应用的所有django应用程序的名字。应用程序可以在多个项目中使用,你可以打包和分发它们供其他人在他们的项目中使用。
INSTALLED_APPS参数的含义:
django.contrib.admin – 管理站点app
django.contrib.auth – 管理权限系统的app
django.contrib.contenttypes – 内容类型的app
django.contrib.sessions – 管理session的app
django.contrib.messages – 管理消息的app
django.contrib.staticfiles – 管理静态文件的app
这些应用程序中一些需要使用数据库表,所以使用这些程序,需要我们创建表,命令:
python manage.py migrate(执行后表创建在上面配置的数据库中)
谨记:在winter/_init_.py里面添加
import pymysqlpymysql.install_as_MySQLdb()
注:如果你不需要使用INSTALLED_APPS应用中的某些app,那就在执行python manage.py migrate命令前,删除他们就ok啦。
三、模型
开始我们的模型之旅吧
在我们的winter_app/models.py创建我们的model
from django.db import modelsclass Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0)
激活models(对应的库建表)1)、在winter_app/settings.py下面添加
INSTALLED_APPS = [ 'winter_app.apps.WinterAppConfig',#自己winter_app下面apps.py里面 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',]
2)python manage.py makemigrations winter_app (通知项目你新添加了app)你会看到winter_app/migrations/0001_initial.py,变动的信息
3)python manage.py sqlmigrate winter_app 0001
BEGIN;---- Create model Choice--CREATE TABLE "polls_choice" ( "id" serial NOT NULL PRIMARY KEY, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL);---- Create model Question--CREATE TABLE "polls_question" ( "id" serial NOT NULL PRIMARY KEY, "question_text" varchar(200) NOT NULL, "pub_date" timestamp with time zone NOT NULL);---- Add field question to choice--ALTER TABLE "polls_choice" ADD COLUMN "question_id" integer NOT NULL;ALTER TABLE "polls_choice" ALTER COLUMN "question_id" DROP DEFAULT;CREATE INDEX "polls_choice_7aa0f6ee" ON "polls_choice" ("question_id");ALTER TABLE "polls_choice" ADD CONSTRAINT "polls_choice_question_id_246c99a640fbbd72_fk_polls_question_id" FOREIGN KEY ("question_id") REFERENCES "polls_question" ("id") DEFERRABLE INITIALLY DEFERRED;COMMIT;
4)python manage.py migrate完美!
努力才能对得起自己!
上帝只给你肩膀能抗的下的成就!
- python初学-04django(数据库,模型)
- python初学-04django
- 初学python、Django
- python Django web初学安装
- Django模型--数据库操作
- Django-模型(数据库)
- Django 模型(数据库)
- django 数据库模型映射
- Django 数据库模型配置
- Django模型(数据库)
- Django 模型(数据库):
- python django 数据库查询
- python django 数据库查询
- python django 数据库查询
- django+python 操作数据库
- python django 数据库查询
- python Django 数据库查询
- python django 数据库查询
- [leetcode]304. Range Sum Query 2D
- SSM整合的pom.xml和jar包整理
- 友盟登陆
- 程序员成长建议(持续更新)
- LUKS:Linux下磁盘加密
- python初学-04django(数据库,模型)
- awk用法
- Qwidget实现文本拖放
- 内部排序算法:快速排序
- ShareREC手机录屏
- C程序编译时各项内存分配
- STL容器--顺序容器-队列queue和deque
- Netscope:神经网络结构在线可视化工具
- poj 1723 中位数