admin管理员组文章数量:1026989
Python:披萨店主页程序练习
1指定规范:
编写的是一个名为“pizzeria”的Web应用程序。用户可以添加pizza的名称,以及某个pizza的配料。以及阅读pizza的内容。
2开始建立虚拟环境:
首先我们要建立一个工程目录,为此新建一个文件夹,命名为pizzeria,然后打开终端切换到这个目录下,并创建一个虚拟环境。操作步骤如下:
2.1
2.2pizzeria的路径中直接输入cmd按下enter进入终端,如下图
注意:上面我这里忘记打开pizzeria文件夹了,所以要加一步切到文件夹下
2.3 使用 python -m venv 11_env 创建虚拟环境
可以看到多了一个11_env的文件,到这里一切正常。
3 激活虚拟环境
上面11_env的虚拟环境建好后,使用 11_env\scripts\activate命令激活,这个命令就是运行11_env\scripts下的activate脚本。当(11_env)有括号出现时表示成功,如图
使用deactivate可以退出虚拟环境
4 安装Django
需要安装Django,使用命令 pip install Django==4.0,这里安装4.0版本,这是比较新的版本,当出现successful表示安装成功。
5 创建项目
接下来正式开始创建项目的框架。使用 django-admin startproject pizzeria 要注意最后有一个点,是为了让项目使用合适的目录结构,方便把应用程序部署到服务器。
6 建立数据库
要有存储数据的地方。使用Python manage.py migrate
7 验证之前的步骤是否正确
使用 python manage.py runserver ,在浏览器中打开 localhost:8000/
出现下图表示正确地创建了项目,到此一切正常。
8 创建应用程序 app_name=pizzerias
重复之前的步骤,打开另一个cmd的窗口,激活虚拟环境,执行 python manage.py startapp pizzerias
可以看到多了一个pizzerias的文件夹,这就是应用程序
9 开始编写代码模型models.py
from django.db import models# Create your models here.
class PizzaName(models.Model):"""披萨的名称以及创建的时间"""name = models.CharField(max_length=100)date_added = models.DateTimeField(auto_now_add=True)def __str__(self):return self.name
class Topping(models.Model):"""存储对应pizza的配料"""pizza = models.ForeignKey(PizzaName,on_delete=models.CASCADE)name = models.TextField()def __str__(self):if len(self.name) > 50 :return self.name[:50] + "..."else:return self.name
10 建立超级用户以及注册模型
10.1 激活模型,打开settings.py,添加我的应用程序名称'pizzerias'
10.2 python manage.py createsuperuser
10.3 注册模型
打开admin.py
from django.contrib import admin# Register your models here.
from pizzerias.models import PizzaName,Topping
admin.site.register(PizzaName)
admin.site.register(Topping)
11 迁移数据库
python manage.py makemigrations pizzerias
python manage.py migrate
每次修改模型都要输入,使数据库能够存储模型中的数据12
12 网页中添加数据
http://localhost:8000/admin/
例如 添加披萨的名称,以及每个主题披萨的内容,方面进行测试
遇到了no such table: pizzerias_pizzaname的问题,添加moedls.py中模型的中数据字段,进行
python manage.py makemigrations pizzerias
python manage.py migrate
然后再改回来,在进行
python manage.py makemigrations pizzerias
python manage.py migrate
让数据库中的表与模型相匹配
13 开始创建pizzeria的主页
能够显示pizza的种类,点击能够每个pizza介绍的页面。
需要一个基础URL,一个显示pizza名称的URL,一个根据选中的pizza显示具体内容的URL,一共三个。
urls.py,添加属于项目的URL,为了好区分,在pizzerias中创建一个urls.py并把它导入进pizzeria的urls.py中。属于项目的URL就在新建里面更改。
13.1 在pizzeriasz目录下新建urls.py
"""pizzerias的URL管理"""
from django.contrib import admin
from django.urls import path ,re_path
from . import viewsapp_name = 'pizzerias'
urlpatterns = [#主页path('', views.index,name='index'),
]
13.2 新建的URL导入到pizzeria下的URL中
from django.contrib import admin
from django.urls import path ,includeurlpatterns = [path('admin/', admin.site.urls),path('',include('pizzerias.urls',namespace='pizzerias')),
]
13.3 编写试图views.py
from django.shortcuts import render# Create your views here.def index(request):"""pizza的主页"""return render(request,'pizzerias/index.html')
13.4 编写HTML,在pizzerias中新建templates,在其中新建pizzerias文件夹,再创建base.html
以及index.html.
index.html
{% extends "pizzerias/base.html"%}
{% block content %}<p>欢迎来到披萨店主页</p>{% endblock content%}
base.html
<p><a href="{% url 'pizzerias:index'%}">Pizzerias</a></p>
{% block content %}{% endblock content %}
13.5 打开http://localhost:8000/,显示如下
14 添加披萨名称以及内容显示页面
14.1 base.html修改
<p><a href="{% url 'pizzerias:index'%}">Pizzerias</a><a href="{% url 'pizzerias:pizzaNames'%}">披萨名字</a>
</p>
{% block content %}{% endblock content %}
14.2 urls.py
"""pizzerias的URL管理"""
from django.contrib import admin
from django.urls import path ,re_path
from . import viewsapp_name = 'pizzerias'
urlpatterns = [#主页path('', views.index,name='index'),path('pizzaNames/', views.pizzaNames,name='pizzaNames'),
]
14.3 views.py
from django.shortcuts import render
from .models import PizzaName# Create your views here.def index(request):"""pizza的主页"""return render(request,'pizzerias/index.html')def pizzaNames(request):# 显示所有披萨名字pizzaNames = PizzaName.objects.order_by('date_added')context = {'pizzaNames': pizzaNames}return render(request,'pizzerias/pizzaNames.html',context)
14.4 添加pizzaNames.html
{% extends "pizzerias/base.html" %}
{% block content %}<p>披萨名字</p><ul>{% for pizzaName in pizzaNames %}<li>{{ pizzaName }}</li>{% empty %}<li> 没有数据 </li>{% endfor %}
</ul>
{% endblock content %}
14.5 效果
14.6 对pizza名字建立连接,显示 pizza中的内容
1. 修改pizzaNames.html
{% extends "pizzerias/base.html" %}
{% block content %}<p>披萨名字</p><ul>{% for pizzaName in pizzaNames %}<li><a href="{% url 'pizzerias:pizzaName' pizzaName.id %}">{{ pizzaName }}</a></li>{% empty %}<li> 没有数据 </li>{% endfor %}
</ul>
{% endblock content %}
2。 修改urls.py
"""pizzerias的URL管理"""
from django.contrib import admin
from django.urls import path ,re_path
from . import viewsapp_name = 'pizzerias'
urlpatterns = [#主页path('', views.index,name='index'),path('pizzaNames/', views.pizzaNames,name='pizzaNames'),re_path(r'^pizzaName/(?P<pizzaName_id>\d+)', views.pizzaName, name='pizzaName'),
]
3 . views.py
def pizzaName(request, pizzaName_id):pizzaName = PizzaName.objects.get(id = pizzaName_id)toppings = pizzaName.topping_set.all()context = {'toppings':toppings}return render(request,'pizzerias/pizzaName.html', context)
4. 新建 pizzaName.html
{% extends "pizzerias/base.html"%}{% block content %}
<p>{{ pizzaName}}</p><P>Toppings:</P><ul>{% for topping in toppings %}<li><P>{{topping.name|linebreaks }}</P></li>{% empty %}<li>没有内容</li>{% endfor %}</ul>{% endblock content %}
5. 如图:
Python:披萨店主页程序练习
1指定规范:
编写的是一个名为“pizzeria”的Web应用程序。用户可以添加pizza的名称,以及某个pizza的配料。以及阅读pizza的内容。
2开始建立虚拟环境:
首先我们要建立一个工程目录,为此新建一个文件夹,命名为pizzeria,然后打开终端切换到这个目录下,并创建一个虚拟环境。操作步骤如下:
2.1
2.2pizzeria的路径中直接输入cmd按下enter进入终端,如下图
注意:上面我这里忘记打开pizzeria文件夹了,所以要加一步切到文件夹下
2.3 使用 python -m venv 11_env 创建虚拟环境
可以看到多了一个11_env的文件,到这里一切正常。
3 激活虚拟环境
上面11_env的虚拟环境建好后,使用 11_env\scripts\activate命令激活,这个命令就是运行11_env\scripts下的activate脚本。当(11_env)有括号出现时表示成功,如图
使用deactivate可以退出虚拟环境
4 安装Django
需要安装Django,使用命令 pip install Django==4.0,这里安装4.0版本,这是比较新的版本,当出现successful表示安装成功。
5 创建项目
接下来正式开始创建项目的框架。使用 django-admin startproject pizzeria 要注意最后有一个点,是为了让项目使用合适的目录结构,方便把应用程序部署到服务器。
6 建立数据库
要有存储数据的地方。使用Python manage.py migrate
7 验证之前的步骤是否正确
使用 python manage.py runserver ,在浏览器中打开 localhost:8000/
出现下图表示正确地创建了项目,到此一切正常。
8 创建应用程序 app_name=pizzerias
重复之前的步骤,打开另一个cmd的窗口,激活虚拟环境,执行 python manage.py startapp pizzerias
可以看到多了一个pizzerias的文件夹,这就是应用程序
9 开始编写代码模型models.py
from django.db import models# Create your models here.
class PizzaName(models.Model):"""披萨的名称以及创建的时间"""name = models.CharField(max_length=100)date_added = models.DateTimeField(auto_now_add=True)def __str__(self):return self.name
class Topping(models.Model):"""存储对应pizza的配料"""pizza = models.ForeignKey(PizzaName,on_delete=models.CASCADE)name = models.TextField()def __str__(self):if len(self.name) > 50 :return self.name[:50] + "..."else:return self.name
10 建立超级用户以及注册模型
10.1 激活模型,打开settings.py,添加我的应用程序名称'pizzerias'
10.2 python manage.py createsuperuser
10.3 注册模型
打开admin.py
from django.contrib import admin# Register your models here.
from pizzerias.models import PizzaName,Topping
admin.site.register(PizzaName)
admin.site.register(Topping)
11 迁移数据库
python manage.py makemigrations pizzerias
python manage.py migrate
每次修改模型都要输入,使数据库能够存储模型中的数据12
12 网页中添加数据
http://localhost:8000/admin/
例如 添加披萨的名称,以及每个主题披萨的内容,方面进行测试
遇到了no such table: pizzerias_pizzaname的问题,添加moedls.py中模型的中数据字段,进行
python manage.py makemigrations pizzerias
python manage.py migrate
然后再改回来,在进行
python manage.py makemigrations pizzerias
python manage.py migrate
让数据库中的表与模型相匹配
13 开始创建pizzeria的主页
能够显示pizza的种类,点击能够每个pizza介绍的页面。
需要一个基础URL,一个显示pizza名称的URL,一个根据选中的pizza显示具体内容的URL,一共三个。
urls.py,添加属于项目的URL,为了好区分,在pizzerias中创建一个urls.py并把它导入进pizzeria的urls.py中。属于项目的URL就在新建里面更改。
13.1 在pizzeriasz目录下新建urls.py
"""pizzerias的URL管理"""
from django.contrib import admin
from django.urls import path ,re_path
from . import viewsapp_name = 'pizzerias'
urlpatterns = [#主页path('', views.index,name='index'),
]
13.2 新建的URL导入到pizzeria下的URL中
from django.contrib import admin
from django.urls import path ,includeurlpatterns = [path('admin/', admin.site.urls),path('',include('pizzerias.urls',namespace='pizzerias')),
]
13.3 编写试图views.py
from django.shortcuts import render# Create your views here.def index(request):"""pizza的主页"""return render(request,'pizzerias/index.html')
13.4 编写HTML,在pizzerias中新建templates,在其中新建pizzerias文件夹,再创建base.html
以及index.html.
index.html
{% extends "pizzerias/base.html"%}
{% block content %}<p>欢迎来到披萨店主页</p>{% endblock content%}
base.html
<p><a href="{% url 'pizzerias:index'%}">Pizzerias</a></p>
{% block content %}{% endblock content %}
13.5 打开http://localhost:8000/,显示如下
14 添加披萨名称以及内容显示页面
14.1 base.html修改
<p><a href="{% url 'pizzerias:index'%}">Pizzerias</a><a href="{% url 'pizzerias:pizzaNames'%}">披萨名字</a>
</p>
{% block content %}{% endblock content %}
14.2 urls.py
"""pizzerias的URL管理"""
from django.contrib import admin
from django.urls import path ,re_path
from . import viewsapp_name = 'pizzerias'
urlpatterns = [#主页path('', views.index,name='index'),path('pizzaNames/', views.pizzaNames,name='pizzaNames'),
]
14.3 views.py
from django.shortcuts import render
from .models import PizzaName# Create your views here.def index(request):"""pizza的主页"""return render(request,'pizzerias/index.html')def pizzaNames(request):# 显示所有披萨名字pizzaNames = PizzaName.objects.order_by('date_added')context = {'pizzaNames': pizzaNames}return render(request,'pizzerias/pizzaNames.html',context)
14.4 添加pizzaNames.html
{% extends "pizzerias/base.html" %}
{% block content %}<p>披萨名字</p><ul>{% for pizzaName in pizzaNames %}<li>{{ pizzaName }}</li>{% empty %}<li> 没有数据 </li>{% endfor %}
</ul>
{% endblock content %}
14.5 效果
14.6 对pizza名字建立连接,显示 pizza中的内容
1. 修改pizzaNames.html
{% extends "pizzerias/base.html" %}
{% block content %}<p>披萨名字</p><ul>{% for pizzaName in pizzaNames %}<li><a href="{% url 'pizzerias:pizzaName' pizzaName.id %}">{{ pizzaName }}</a></li>{% empty %}<li> 没有数据 </li>{% endfor %}
</ul>
{% endblock content %}
2。 修改urls.py
"""pizzerias的URL管理"""
from django.contrib import admin
from django.urls import path ,re_path
from . import viewsapp_name = 'pizzerias'
urlpatterns = [#主页path('', views.index,name='index'),path('pizzaNames/', views.pizzaNames,name='pizzaNames'),re_path(r'^pizzaName/(?P<pizzaName_id>\d+)', views.pizzaName, name='pizzaName'),
]
3 . views.py
def pizzaName(request, pizzaName_id):pizzaName = PizzaName.objects.get(id = pizzaName_id)toppings = pizzaName.topping_set.all()context = {'toppings':toppings}return render(request,'pizzerias/pizzaName.html', context)
4. 新建 pizzaName.html
{% extends "pizzerias/base.html"%}{% block content %}
<p>{{ pizzaName}}</p><P>Toppings:</P><ul>{% for topping in toppings %}<li><P>{{topping.name|linebreaks }}</P></li>{% empty %}<li>没有内容</li>{% endfor %}</ul>{% endblock content %}
5. 如图:
本文标签: Python披萨店主页程序练习
版权声明:本文标题:Python:披萨店主页程序练习 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694666522a254814.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论