这一篇接着上一篇polls App自动创建admin app.

    1.安装数据库

这里的内容从官网看越看越像 EntityFramework的内容.Python支持SQLite,MySql,Oracle,PostgreSQL,官网提供的例子连接的是Sqlite数据库,这篇将基于Mysql

首先查看MySql服务命令在前面的随笔中提到过:http://www.cnblogs.com/andayhou/p/8277364.html,在Terminal 中执行:

开启mysql57服务:

新打开一个cmd程序,切换到Mysql57的安装目录,打开Mysql数据库:

查看所有数据库:

创建本篇需要的数据库:myDataBase

       2.Python 绑定数据库

Django 支持5.5及以上的Mysql数据库版本,本篇使用的Mysql版本是5.7.20,django,需要通过pip安装mysqlclient,terminal输入如下命令(pip的安装在本系列的第一篇有提到):

>pip install mysqlclient 

配置Mysql连接地址,firstPro/settings.py

DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
#以上是django默认配置的sqlite数据库
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'mydatabase', #数据库需要提前建
'USER':'root',
'PASSWORD':'',
'HOST':'localhost',
'PORT':''
}
}

根据变更集,初始化程序,执行如下命令:

>python manage.py migrate

django会根据配置信息,初始化程序环境,在上面我们配置了默认数据为mysql,django的默认app为admin,执行上面的命令,django连接配置的数据库,创建app admin或者django所要求的表,打开myDatabase就能发现这些表:

接下来我们创建app polls 所要求创建的数据表

       3.创建Models

根据业务需要需要创建两个实体类Question,和Choice,编辑polls/models.py如下:

 from django.db import models

 class 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)

在firstPro/settins.py添加app polls的配置,告知项目polls为已安装的app

初始化app polls的变更集

输入如下命令:

>python manage.py makemigrations polls

在firstPro\polls\migrations\路径下生成了一个新文件 0001_initial.py,这个命名为0001的文件中,已经生成好了对应数据库的字段名称,类型,以及约束等,下面执行的命令将生成Question和Choice两张表:

>python manage.py sqlmigrate polls 0001

在执行一次 >python manage.py migrate初始化项目运行环境

>python manage.py migrate

打开mysql 查看数据表:

       4.创建项目系统用户

利用django默认app admin创建系统超级用户,执行以下命令:

>python manage.py createsuperuser
username:>admin
Email address:> remih@qq.ccom
Password: >**********
Password (again):> *********

启动站点:

>python manage.py runserver   #默认启动是localhost:8000

浏览器中输入http://localhost:8000/admin(这个路由在上节中配置过的)

在admin 下没有看到关于Question和Choice 数据表的维护

打开polls/admin.py注册数据表(或者实体类)

 from django.contrib import  admin #引入的默认ajango app admin
from .models import Question
from .models import Choice
admin.site.register(Question) #注册实体Question
admin.site.register(Choice)

重新刷新界面http://localhost:8000/admin/,你会发现,Question的编辑界面,没有列出问题的内容,为了方便添加数据polls/admin.py编辑如下[在这个系列第6篇将探讨,改造默认app admin]:

from django.contrib import  admin
from .models import Question
from .models import Choice
# admin.site.register(Question) #注释掉这里的信息
# admin.site.register(Choice)
class ChoiceInLine(admin.TabularInline):
model = Choice
extra = 2
class QuestionAdmin(admin.ModelAdmin):
list_display = ('question_text','pub_date','was_published_recently')
fidldsets=[
(None,{'fields':['question_text']}),
('Date Infomation',{'fileds':['pub_date'],'class':['collage']})
]
inlines = [ChoiceInLine] admin.site.register(Question,QuestionAdmin)

通过上面的界面就可以维护项目用户和项目表了,界面的操作结果保存是保存到数据库的

备注: django连接mysql数据库参考http://blog.csdn.net/it_dream_er/article/details/52092262

但是博客中提到的通过pip 安装 pymysql(python3以上的版本安装的是pymysql,python3 以下的版本安装的是 mySqldb),至少在django 2.0.1上不是必须的

最新文章

  1. 20145215实验二 Java面向对象程序设计
  2. MFC Picture控件加载图片
  3. 【Python】 [基础] 条件判断 与 循环 与dict和set
  4. autotools工具使用记录
  5. ogrinfo使用
  6. [原创]Gerrit中文乱码问题解决方案分享
  7. 关于 MySQL LEFT JOIN 你可能需要了解的三点(zhuan)
  8. jQuery 2.0.3 源码分析 bind/live/delegate/on
  9. [转载]DataSet导入到Excel文件
  10. Python之Python Imaging Library
  11. Python中文全攻略
  12. SQL语句的优化建议
  13. VS编辑器主题变换插件-EasyVS
  14. HTML-全局属性 / 事件属性(转)
  15. 因为强行关机, 而导致的fedora23 不能重新启动, 卡在开机logo那里的 修复 解决方案
  16. Css_*^$
  17. Android Studio 之 打包项目生成APK
  18. 查看Linq to Sql生成的sql语句(转)
  19. python中copy 与 '=' 的区别
  20. boost::bind和boost::function使用示例

热门文章

  1. php html5 文件上传 (原创)
  2. Concurrency Is Not Parallelism (Rob pike)
  3. jquery提供的插件无法删除cookie的解决办法
  4. 【http转https】其之三 IIS_URL重写_http重定向到https
  5. linux svn up 中文显示乱码解决办法
  6. 腾讯WeTest发布《2017中国移动游戏质量白皮书》,专注手游品质提升
  7. 用AndroidStudio发布Libs到Bintray jCenter
  8. hadoop的安装和配置(二)伪分布模式
  9. 自学Aruba1.3-WLAN一些基本常识802.11n速率计算方式、802.11n及802.11AC速率表
  10. Jmeter发送JDBC请求