bookms是公司内部的图书馆管理系统。
在这个系列中,一个图书管理系统,bookms,是由几个迭代的方法实现。 scrum
本文主要介绍了PyCharm使用Django项目建设,并建立了一个核心的领域模型。
1。项目的建立
首先我们要迈出我们的第一步,使用PyCharm建立我们的BOOKMS项目,注意路径里不能有中文,项目类型选择Django。
因为我们项目后台管理使用admin,所以这里我们直接启用Django admin模块
到这里我们就在图上的目录里创建了一个基本的项目,可以点击运行然后到 http://127.0.0.1:翼发云0/看看,当然一个华丽丽的错误。
从模型开始开发似乎是个好主意。一方面模型是整个应用的核心,实现了应用的业务数据和对业务数据进行操作的约束,而视图和模板只是向用户提供操作和展现这些数据的界面;另一方面模型相对于系统的其他部分更加稳定,将模型先确定下来有助于系统其他部分的实现。DDD(领域驱动设计)更进一步将模型中的核心对象抽取出来作为“领域模型”。
从BOOKMS来看,图书(Book) 应该是模型中的核心对象之一。就让我们先来实现Book模型。
Django约定必须要创建app才能使用模型。这也是Django的哲学之一:
Django认为一个project包含很多个Django appl;project提供配置文件,比如数据库连接信息、 安装的app清单、模板路径等等;而一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。
app可以在多个project之间很容易的复用。比如Django自带的注释系统和自动管理界面。
接下来我们添加一个app:bookapp
cmd命令行到bookms目录然后执行
python manage.py startapp bookapp(这里也可以使用pycharm执行 但是觉得不太好用)
最终目录是这样的:
两。代码定义模型
类的书(模型。模型):类元:verbose_name = verbose_name_plural verbose_name =“这本书的书号= models.charfield('isbn',max_length = 13,独特的=真)标题= models.charfield(”称号,max_length = 200)字幕models.charfield(max_length = 200,空白=真正的':',页)= models.integerfield('页',空白=真正的models.charfield(作者)=“作者”,max_length = 60)翻译= models.charfield(max_length = 60,空白=真正的'翻译',价格)= models.charfield(max_length = 60,空白=真”的定价,出版商)= models.charfield(max_length = 200,空白=真正的出版社,出版日期)= models.charfield(出版的max_le日期。力量= 60空白=真正的cover_img(模型。URLField)= '覆盖',空白= true)摘要= models.textfield(空白= true,'引进来' max_length = 2000(模型。TextField)author_intro =“传记”,空白= true,max_length = 2000),__unicode__(自我):返回str(自标题)。
模型如上面代码,字段是参照豆瓣API的返回的(以后我们的图书肯定是从豆瓣获取数据啦……)。
三。将模型部署到数据库
Django认为所以的事情都需要你的确认,所以我们的project还需要一些配置才能工作。这里我们在bookms项目建立一个db目录然后把我们前一篇里弄的那个bookms.db文件放进来。
然后修改配置文件settings.py, 将DATABASES改为:
数据库:= { 'default”{引擎:'django。分贝。后端。sqlite3,'name':'db / bookms。dB,用户”:'password”:'host ',' ',' ',' ','port '::} }
然后修改配置文件settings.py,使我们的bookapp生效,将INSTALLED_APPS改为:
installed_apps =('django。贡献。认证”,'django。贡献。内容类型包括,'django。贡献。会议”,'django。投稿网站,'django。贡献。消息,'django。贡献。staticfiles,线下#注释,使管理员:'django。”admin'uncomment线下。使# #管理文档:'django。贡献。admindocs ','bookms bookapp”)。
只是在最后加入一行 ‘BOOKMS.bookapp’,前面那堆东西是因为我们开启了admin模块。
然后修改一下:
LANGUAGE_CODE = ‘zh-CN’
TIME_ZONE = ‘Asia/Shanghai’
让这玩意变成中文的。
然后我们来验证一下模型:
cmd命令行到bookms目录然后执行
python manage.py validate
0 errors found
然后可以来看看这个模型会被生成什么样的sql,同样在命令行执行:
python manage.py sqlall bookapp开始;创建表”bookapp_book”(“ID的整数不“空主键“书号”varchar(13)不为空的独特,“标题”varchar(200)不为空,字幕varchar(200)非空整数不空,“页面”、“作者”(VARCHAR 60)不空,译者varchar(60)不为空,价格varchar(60)不为空,出版商varchar(200)不为空,PubDate varchar(60)不为空,cover_img varchar(200)不为空的文本不为空,“总结”、“author_intro”文字不空提交);
最后将模型导入数据库:
python manage.py syncdb
Creating tables …
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table bookapp_book
You just installed Django’s auth system, which means you don’t have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use ‘lt’): admin
E-mail address: admin@test.com
Warning: Password input may be echoed.
Password: 123456
Warning: Password input may be echoed.
Password (again): 123456
Superuser created successfully.
Installing custom SQL …
Installing indexes …
No fixtures found.
因为我们启用了admin模块所以这里步骤稍微复杂一点,要建立一个默认的管理员账户。
最后我们再次run系统并浏览http://127.0.0.1:翼发云0/admin/终于可以看到界面了,用admin和123456登录看看成果吧。
四。把项目在SVN版本控制
PyCharm已经集成了很多的版本控制,这里我们使用svn。
文章从互联网整理而来,旨在传播scrum、软件项目管理、研发项目管理、敏捷开发管理工具的知识与应用,帮助软件开发企业真正了解研发项目管理的价值和意义,如果本文侵犯了您的权益或者您需要具体了解更多国内做研发项目管理系统的公司翼发云敏捷项目管理系统的相关信息,欢迎和我们联络:
【网址】www.effapp.com