我的第一个Django程序,搭建环境、添加餐馆功能的实现

本文档详细介绍了如何使用Django框架搭建一个简单的餐馆管理应用。从环境配置、项目创建、数据库设置到功能实现,包括添加餐馆信息并展示在网页上,一步步指导初学者入门Django。
摘要由CSDN通过智能技术生成

<<<<<<< HEAD

MyFirstDjangoProject

=======

使用Django实现餐馆的添加功能

1.所使用的环境、框架版本、工具


*运行环境    
    *python 3.7.4
    *MySQL 5.5.40

*框架版本
    *Django === 3.1.0
    *pymysql === 0.10.0
    
*工具版本
    *PyCharm Professional v2019.3.3
    *SQLyog Professional v12.09
    *Google Chrome v84.0.4147.105

2.安装环境


1.首先需要安装3.5版本以上的python环境

2.在cmd命令行中输入pip install Django,回车之后便可安装好Django环境

3.在cmd命令行中输入pip install pymysql,此模块用于操作MySQL数据库

3.创建项目


1.安装好Django后,可以使用进入一个文件夹,使用Django自带的方法进行创建项目,
在cmd中输入django-admin startproject DjangoTemplate,DjangoTemplate为我们项目名字

2.如果使用的是PyCharm的专业版,可以直接在PyCharm中创建Django程序,社区版不具备此功能

4.修改项目设置


创建好的Django项目文件的目录应该是这样的

DjangoTemplate
--DjangoTemplate
    --__init__.py
    --asgi.py
    --settings.py
    --urls.py
    --wsgi.py
--templates
--manage.py

1.打开settings.py文件,将TEMPLATES的路径修改为'DIRS': [os.path.join(BASE_DIR, 'templates')],
若使用PyCharm专业版创建的项目,则默认已经修改好。

2.将settings.pyMIDDLEWARE下面的'django.middleware.csrf.CsrfViewMiddleware',此行注释掉。

3.在settings.py的最后添加STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ),然后可以在项目下创建名为static的文件夹,用于存放css、图片等静态文件。

5.创建数据库


使用SQLyog图形化管理数据库

创建名为restaurant的数据库

创建表

CREATE TABLE Restaurant( 
    id INT PRIMARY KEY AUTO_INCREMENT,
    res_name CHAR(20) NOT NULL, 
    address CHAR(20) NOT NULL, 
    res_type CHAR(20) NOT NULL 
)CHARSET utf8;<br>

随便设置两条信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aF6nEDY1-1597152934209)(http://a1.qpic.cn/psc?/V14eztM52Fok8u/bqQfVz5yrrGYSXMvKr.cqeOeVoIU29lSsPxGs4ipU6NENBnyiGKzsmOdSsX.V7UD1b2bIAPD.2tPYS6r9IPBT3zCuOU0jC5nXkQ9d3K*33M!/b&ek=1&kp=1&pt=0&bo=fQFEAH0BRAADEDU!&tl=1&vuin=879409261&tm=1597075200&sce=60-1-1&rf=viewer_311)]

6.实现功能


1.在urls.py文件中,添加以下两条:

url(r'^restaurant_info/', views.restaurant_info),
url(r'^add_restaurant/', views.add_restaurant),

2.在app文件夹下面创建views.py文件,并导入render, redirect,pymysql等模块

3.创建两个函数:

def restaurant_info(request):
def add_restaurant(request):

4.使用pymysql连接至数据库,并执行返回相应的数据:

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='djangotemplate', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("SELECT id,res_name,address,res_type from restaurant")
restaurant_list = cursor.fetchall()
cursor.close()
conn.close()

5.在templates文件夹中创建html文件,在restaurant_info函数中调用render方法

return render(request, 'restaurant_info.html', {'restaurant_list': restaurant_list})

6.add_restaurant函数同理,需要接收POST返回的数据,并插入数据库中:

def add_restaurant(request):
    if request.method == "GET":
        return render(request, 'add_restaurant.html')
    else:
        print(request.POST)
        v1 = request.POST.get('name')
        v2 = request.POST.get('address')
        v3 = request.POST.get('type')
        conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='djangotemplate',
                               charset='utf8')
        cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
        cursor.execute("INSERT INTO restaurant(res_name,address,res_type) values(%s,%s,%s)", [v1, v2, v3, ])
        conn.commit()
        cursor.close()
        conn.close()
        return redirect('/restaurant_info/')

7.根据add_restaurant中input标签的name属性接收用户的输入:

v1 = request.POST.get('name')
v2 = request.POST.get('address')
v3 = request.POST.get('type')

8.在restaurant.html中使用循环,将后端在数据库中查询到的数据显示出来:

{% for row in restaurant_list %}
    <tr>
        <td>{{ row.id }}</td>
        <td>{{ row.res_name }}</td>
        <td>{{ row.address }}</td>
        <td>{{ row.res_type }}</td>
     </tr>
{% endfor %}

7.运行程序


在项目文件夹下执行命令python manage.py runserver或者直接使用PyCharm运行程序

在浏览器中输入127.0.0.1:8000/restaurant_info即可进入

8.效果演示


进入127.0.0.1:8000/restaurant_info后即可看见数据库中的两条信息

1.png

点击添加餐馆按钮,自动进入127.0.0.1:8000/add_restaurant,在三个框中填写信息

在这里插入图片描述

点击提交按钮,自动回到127.0.0.1:8000/restaurant_info地址,并显示新的数据

(img-oOTWqPbr-1597152934219)(https://i-blog.csdnimg.cn/blog_migrate/bd51c75e76b6ad45a49b095cc9a4b63b.png)]

License


Copyright © Jiawei_Lyu. All rights reserved.

Licensed under the MIT license.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值