Skip to content

Commit dd8924e

Browse files
committed
update
1 parent 490673a commit dd8924e

File tree

4 files changed

+116
-1
lines changed

4 files changed

+116
-1
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
###
4747

48-
* [todo]t产品库存管理——创建一个管理产品库存的应用。建立一个产品类,包含价格、id、库存数量。然后建立一个库存类,记录各种产品并能计算库存的总价值。
48+
* ~~产品库存管理——创建一个管理产品库存的应用。建立一个产品类,包含价格、id、库存数量。然后建立一个库存类,记录各种产品并能计算库存的总价值。~~
4949
* 电影商店——管理录像带租借,记录借出时间、到期时间、逾期费用。复杂一点可以生成逾期用户的账号报告。
5050
* 航空/酒店预订系统——创建一套预订航班或酒店的预订系统。不同的航班座位和酒店房间收费不一样。譬如头等舱要比经济舱贵。带阁楼的套间要更贵些。记录下何时有空房可供预订。
5151
* 学生成绩管理器——记录一个班级的学生(创建一个Student类,记录他们的名字、平均分和考试分数)和他们的成绩等级。根据学生的测验和作业的分数计算出平均分和成绩等级。复杂一点可以将数据画在贝尔曲线上。
@@ -77,6 +77,8 @@
7777
* 内容管理系统——像Joomala、Drupal、PHP Nuke这样的内容管理系统。从简单的做起,慢慢增加其它功能。
7878
* 模板制作器——该网站应用允许用户输入各种颜色代码、元素、尺寸,来为PHPBB、Invision Board、MySpace之类的应用创建模板文件。
7979
* 验证码生成器——应该在登录时见过有数字有字母的验证码图片吧?这可以防止自动登录和垃圾广告。试着自己做一个,如果使用PHP的话,看下GD的图片函数。
80+
* 各种语言的代码片段, 拥有模糊搜索, 标签, 分类的功能, 分页做下滑式的, 困难点可以做成有权限控制的, 游客提交的需要通过审核, 再困难点可以使用restful方式 可以像https://www.pythonsheets.com
81+
* 导航网站, 提供网站的快捷方式, 困难点可以做得快速点
8082

8183
### 文件
8284

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[[source]]
2+
name = "pypi"
3+
url = "https://pypi.org/simple"
4+
verify_ssl = true
5+
6+
[dev-packages]
7+
8+
[packages]
9+
sqlalchemy = "*"
10+
11+
[requires]
12+
python_version = "3.7"

class-dir/Product inventory management/Pipfile.lock

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
from sqlalchemy import Column, ForeignKey, Integer, String, create_engine
2+
from sqlalchemy.ext.declarative import declarative_base
3+
from sqlalchemy.orm import relationship, sessionmaker
4+
5+
Base = declarative_base()
6+
7+
8+
class Product(Base):
9+
"""
10+
产品类: 记录产品的价格, 名字, 库存
11+
id: 主键
12+
price: 价格
13+
stock: 库存
14+
"""
15+
__tablename__ = 'product'
16+
id = Column(Integer, primary_key=True)
17+
name = Column(String)
18+
price = Column(Integer)
19+
nums = Column(Integer)
20+
stock_id = Column(Integer, ForeignKey('stock.id'))
21+
22+
def __str__(self):
23+
return f'<Product {self.name}>'
24+
25+
def __repr__(self):
26+
return f'<Product {self.name}>'
27+
28+
29+
class Stock(Base):
30+
"""
31+
库存类: 记录各种产品并能计算库存的总价值。
32+
"""
33+
__tablename__ = 'stock'
34+
id = Column(Integer, primary_key=True)
35+
# product_id = Column(Integer, ForeignKey('product.id'))
36+
procuts = relationship('Product', backref='stock', lazy='dynamic')
37+
38+
def __str__(self):
39+
return f'<Stock {str(p.name for p in self.procuts)}>'
40+
41+
def list_all_product(self):
42+
return [p for p in self.procuts]
43+
44+
def total_money(self):
45+
return sum(p.price for p in self.procuts)
46+
47+
48+
engine = create_engine('sqlite:///product.db', echo=False)
49+
Base.metadata.create_all(engine)
50+
51+
Session = sessionmaker(bind=engine)
52+
session = Session()
53+
54+
# define product
55+
product = Product()
56+
product.id = 1
57+
product.name = "高考试卷"
58+
product.price = 400
59+
product.nums = 500
60+
61+
session.add(product)
62+
session.commit()
63+
64+
# define stock
65+
66+
stock = Stock()
67+
stock.id = 1
68+
stock.procuts = [product]
69+
session.add(stock)
70+
session.commit()
71+
72+
print(stock.list_all_product())
73+
print(stock.total_money())

0 commit comments

Comments
 (0)