Python-Django(系统自带后台管理)

django (Python Web 框架)
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C
我们系统环境中已经安装了Python3.3了,Django需要继续安装,这里我们采用pip安装。
pip install django
等待安装完了之后,在下图位置可以找到
Python-Django(系统自带后台管理)_第1张图片
我们django的开发,借助idea来完成。下面就开始正儿八经代码了。
1.新建一个项目:
Python-Django(系统自带后台管理)_第2张图片
记得勾选django,至于application name不需要输入,到时候需要什么都可以新建,一路下一步,给项目取个名字,就可以了。
2.修改项目设置
File–>Project Structure –>Facets –>Django
选定项目的根,setting文件和manage.py文件
Python-Django(系统自带后台管理)_第3张图片
每当新建一个项目,比如说Hello,就会出现一个名为Hello的包和manage.py文件,记住,manage.py在哪就是项目的根目录在哪里。
3.试启动一下,
两种方法:a.在manage.py文件同级目录下,输入manage.py runserver 8000
b.在idea上运行,
Python-Django(系统自带后台管理)_第4张图片
在网页栏输入http://localhost:8000,能看到这个界面就说明配置都对了。
Python-Django(系统自带后台管理)_第5张图片
4.新建app module,快捷键:Ctrl+Alt+R
Python-Django(系统自带后台管理)_第6张图片
startapp team
新建app后,项目的目录文件结构如图所示:
Python-Django(系统自带后台管理)_第7张图片
既然是MVC的框架,那就先来定义模型.
models.py

class team(models.Model):
    t_name=models.CharField("球队名字",max_length=30,null=True)
    t_city=models.CharField("所处城市",max_length=30,null=True)

对于charfiled字段来说,max_length是必不可少的一个参数。
然后需要在数据库中建立相对应的表格,还是用之前的快捷键Ctrl+Alt+R,执行,makemigrations team
Python-Django(系统自带后台管理)_第8张图片
才想起我们并没有进行数据库相关的设置。
找到主目录的setting文件,
1.在installed_apps里加上我们的app
‘team.apps.TeamConfig’
2.DATABASES 设置成mysql,并跟我们的数据库链接起来(在数据库里新建名为NBA的数据库)
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: “NBA”,
‘USER’:”root”,
“PASSWORD”:”123456”,
“PORT”:”3306”,
}
}
这个时候再来执行makemigrations team,可以看到生成了team\migrations\0001_initial.py,这个文件可以通过sqlmigrate team 0001来查看具体的sql语句,是不是我们想要的,如果确认无误的话,就进行真正的migration了.

–》migrate
因为我们是这个项目第一次migrate,后面不加参数的话,会自动生成installed app里所有加载模块的数据表格,一些系统自带的模块也会被生成。
再去数据库中查看,可以看到
Python-Django(系统自带后台管理)_第9张图片
team表格中,会自动生成主键ID,以及我们设置的t_name和t_city
3.再把这个models注册到django自带的管理系统上,就可以啦。
admin.py
admin.site.register(models.team)

4.然后创建一个超级用户,去网站上看看效果
Python-Django(系统自带后台管理)_第10张图片
新建,
Python-Django(系统自带后台管理)_第11张图片
这里前面的球队名字,和所处城市,就是我们之前CharFiled第一个参数决定的。
新建完之后,得到球队的信息并不是我们想要的。
Python-Django(系统自带后台管理)_第12张图片
如果对于球队对象,只需要返回一个值得话,我们可以在Models中重写str方法,但是这个例子,我们需要返回球队名字和所处城市两个城市,那么就需要重写admin.ModelAdmin了。
admin.py

class team_admin(admin.ModelAdmin):
    list_display=("t_name","t_city")
admin.site.register(models.team,team_admin)

再刷新网页,发现就显示正常了。
这里写图片描述
我们在models.py中再加上一段代码
class team(models.Model):
class Meta():
verbose_name=”一个球队”
verbose_name_plural=”很多球队
t_name=models.CharField(“球队名字”,max_length=30,null=True)
t_city=models.CharField(“所处城市”,max_length=30,null=True)

Python-Django(系统自带后台管理)_第13张图片
Python-Django(系统自带后台管理)_第14张图片
通过设置单数复数,就能实现个性化显示
每新建一个数据,或者是修改一条数据,数据都将同步到数据库中。
到目前为止我们就实现了,用Django自带的后台管理系统,进行显示,数据库交互等任务了。优势是,简单方面容易上手,但是缺点是,界面单一,功能固化,下一篇博客我们将介绍怎么自己写views,自己生成表单提交数据到数据库中。

你可能感兴趣的:(python)