快速入门Django开发教程(旅游推荐系统实现教程)

本人开发环境直接用的是pycharm商业版,直接可以新建一个Django工程,大家可以在这里直接设置application name,这个也将会在下面会大家详细介绍。

本次实战,主要涉及如下5个方面,分别对应该文件下的jinhong、static、templates、untitled4、travle.db,如果换成专业名词的话就是:

  1. jinhong对应的是Django里面的APP【核心】,在此开发者可进行数据的传输和计算、创建类和视图、以及实现数据库表的提取。
  2. static文件,一般用来存储css、js和一些静态文件
  3. templates用来存储前端模板
  4. untitled4,这是对应的Django项目,在这里可以设置数据库参数、url跳转;
  5. travle.db则就是数据库。

 

下面是一些经常可能刚入门经常遇到的问题:

目录

如何实现数据库之间的连接

如何获取前端的数据?

如何将后端的数据传递到前端:

前端中四则运算:

如何实现url的跳转:

 

如何实现数据库之间的连接

我在此次实战中用到了两种方式:第一种是写一个类用来进行直接连接数据库,第二种是通过使用app(jinhong)中的models调用。

第一种具体实现方式:

第二种具体实现方式:

这种则需要我们首先设置好对应的数据库一些参数:

在终端执行如下代码:

python manage.py inspectdb > jinhong\models.py

最好自动生成对应的modles数据。

如何获取前端的数据?

 <form action="" method="post" name="reg_form">
                    {% csrf_token %}
                    <div class="d_left_1t">定制行程:</div>
                    <div class="d_left_1d">
                        <div class="d_left_1d_1">

                            <label class="w120">目的地:</label>
                            <input type="hidden" value="0" id="areaid_1" name="post_fields[mdd]">
                            <span id="load_area_1">
                                <select class="dq3" name="city" id="mz">
                                    <option value="0">请选择</option><option value="beijing">北京</option><option
                                        value="shanghai">上海</option><option value="hangzhou">杭州</option><option
                                        value="changsha">长沙</option>
def index(request):
    if request.method == "POST" and request.POST:  # 如果请求是post方式且有数据
        city = request.POST["city"]
        people = int(request.POST["post_fields[cr]"].encode("utf-8")) + int(
            request.POST["post_fields[et]"].encode("utf-8"))
        sttime = request.POST["post_fields[cfrq]"].encode("utf-8")
       
        return HttpResponseRedirect('result2')
    return render(request, 'index.html', locals())

如何将后端的数据传递到前端:

def result(request):
    test2 = biginfo.city
    hs = [{}]
    fos = [{}]
    hos = [{}]
    los = [{}]
    # print (hs)
    return render(request, 'result2.html',
                  {'biginfo': biginfo, 'test2': test2, 'hs': hs, 'fos': fos, 'hos': hos, 'los': json.dumps(los)})

使用{% %}就可以引用变量了

 <div class="detail-journey-seprate-solid"></div>

                        <div class="J_JourneyItemd0-m0">
                        <div class="detail-journey-title">
                            <i class="icon detail-journey-label-note"></i>
                            行程概览
                        </div>
                        <div class="detail-journey-desc"><p><font>
                            1、今天您将浏览-
                            {% for re in hs %}
                                {% if i == re.id %}
                                    <font color="#ff9702">{{ re.jiname }},</font>
                                {% endif %}
                            {% endfor %}
                            这些适合您的风景。
                            <p>2、也将享受到本地美食-
                                {% for re in fos %}
                                    {% if i == re.id %}
                                        <font color="#ff9702">{{ re.name }},</font>
                                    {% endif %}
                                {% endfor %}
                                可使用美团或者饿了么搜搜。</p>
                            <p>
                                3、最后你将入住在
                                {% for re in hos %}
                                    {% if i == re.id %}
                                        <font color="#ff9702">{{ re.name }}</font>
                                    {% endif %}
                                {% endfor %},完成了一天的旅游行程。
                            </p></font></p>
                        </div>

前端中四则运算:

对了Django里面的四则运算貌似有点差异,具体差异如下:

#加法:
{{value|add:value2}}
#返回的结果是value+value2的值,假设你value为40,value2为60 ,则该表达式
#返回结果为100
#减法
{{value|add -value2}}
#乘法
{% widthratio value1 value2 value3%}
#上面的代码表示 value1/value2*value3,widthratio需要三个参数,进行乘法 只需将第二个参数等于1即可
#例: value1=10 value2=1 value3=2 返回的结果为10/1*2=20
#除法
{% widthratio value1 value2 value3%}
#返回的结果是 (value1/value2)*value3  只需将value3等于1就能进行除法运算
#例: value1=100 value2=20 value3=1  返回的结果为 (100/20)*1=5
 

如何实现url的跳转:

url(r'^$', views.index, name='index'),对这端代码进行解释说明,r'^$'默认首页、views.index启动改视图的函数、name='index'界面模板。

其实还有很多东西可以写的,有时间继续更新!!!!!

 

  • 15
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值