Django
Python开发web在国内可能没那么盛行,但在国外却发展迅猛。国内有些知名网站,像知乎、网易、豆瓣都是用Python开发的;国外有Quora(社交问答网站)、Google、Pinterest(图片社交分享网站)。今天分享一下比较出名的3个Python web框架中的一个。
此文章参考B站上的视频教程。下面给大家介绍一下这个项目
项目配置
语言:python3.7、HTML
web框架:django2.1.7
开发工具:Pycharm
开发环境:Windows操作系统
项目创建
1. 安装Django
2. 创建Django项目
- 首先创建Django项目,项目命名为shop
# 创建shop项目
django-admin startproject shop
3. 在settings.py中修改设置
语言和时间设置成中国的
media文件夹存放前端图片
除了这个,还要设置urls.py
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
这样我们就做完了基本的前期设置
4. 生成App应用
- 命令执行完成后,在工程目录下会生成shopping目录
- 注意:app的名称不能和项目名称一样
cd shop
django-admin startapp shopping
创建出来后记得要在setting.py中加上!!!
5. 在shopping目录中的models.py文件下新建模型(表的描述)
from django.db import models
# Create your models here.
class 商品类别表(models.Model):
名称 = models.CharField(max_length=50,unique=True)
描述 = models.TextField(blank=True)
图片 = models.ImageField(upload_to='category',blank=True)
class Meta:
verbose_name_plural = "商品类别表" # 不指定就会是复数(s)
db_table = "商品类别表" # 加这个建出来的表不会有前缀
def __str__(self):
return self.名称
class 产品列表(models.Model):
名称 = models.CharField(max_length=50,unique=True)
描述 = models.TextField(blank=True)
图片 = models.ImageField(upload_to='category',blank=True)
所属类别 = models.ForeignKey(商品类别表,on_delete=models.CASCADE())
价格 = models.DecimalField(max_digits=10,decimal_places=2)
库存 = models.IntegerField(default=0)
已上架 = models.BooleanField(default=True)
创建时间 = models.DateTimeField(auto_now_add=True)
修改时间 = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = "产品列表" # 不指定就会是复数(s)
db_table = "产品列表" # 加这个建出来的表不会有前缀
ordering = ('-创建时间',)
def __str__(self):
return self.名称
6.在数据库中创建默认表格
如果用的MySQL数据库,执行命令之前需要先在MySQL中创建本项目的数据库
python manage.py makemigrations
python manage.py migrate
7.在shopping目录下的admin.py文件中注册数据库表,使其在管理页面中显示
from django.contrib import admin
from .models import 产品列表,商品类别表
# Register your models here.
admin.site.register(产品列表)
admin.site.register(商品类别表)
这样就告诉后台,我要把这两个表放进去,就可以看到
8.创建超级管理员的用户名和密码
python manage.py createsuperuser
# 创建完成后运行项目
python manage.py runserver
然后再访问127.0.0.1:8000/admin,输入设置好的用户名和密码,如下所示:
9. 增加数据
进入后台管理进行数据增加
10.可以在admin.py中修改后台显示
from django.contrib import admin
from .models import 产品列表,商品类别表
# Register your models here.
class 商品类别表Admin(admin.ModelAdmin):
list_display = ['id','名称','描述','图片']
admin.site.register(商品类别表,商品类别表Admin)
admin.site.register(产品列表)
11.修改数据
from django.contrib import admin
from .models import 产品列表,商品类别表
# Register your models here.
class 商品类别表Admin(admin.ModelAdmin):
list_display = ['id','名称','图片']
admin.site.register(商品类别表,商品类别表Admin)
# admin.site.register(商品类别表)
class 产品列表Admin(admin.ModelAdmin):
list_display = ['id', '名称', '图片','所属类别','价格','库存','已上架','创建时间','修改时间' ]
list_editable = ['名称', '所属类别', '价格', '库存', '已上架']
list_per_page = 10
admin.site.register(产品列表, 产品列表Admin)
# admin.site.register(产品列表)
12.在shopping app下创建
所有其他网页都要继承base.html
{% extends "shopping/base.html" %}
还要加载风格样式。这里前端页面制作就不详述了
13.配置路由
在主路由下
path('',include('shopping.urls'))
在分路由下
from django.urls import path
from . import views
app_name = "shopping"
urlpatterns = [
path('', views.总览页,name='总览页'),
]
定义views.py
from django.shortcuts import render
from .models import 产品列表,商品类别表
# Create your views here.
def 主页(request):
content = {'所有商品':产品列表.objects.all()}
return render(request,'shopping/home.html',content)