django实现获取url参数与数据库访问
本文最后更新于 408 天前,其中的信息可能已经有所发展或是发生改变。

朋友说让我帮他实现一个效果:

使用Python的django web框架,开发一个logger web服务,客户可以通过curl命令发出如下的result请求:
http://hosip:80/logger?message=xxxx
服务端收到这个请求后,提取其中的message的value,将这个value存放入MySQL数据库的logInfo表中(该表至少有三个属性:id,datetime,message).
提示:熟悉基本的django web应用开发技术,熟悉基本的数据库访问编程,自己安装MySQL的扩展模块

问题比较简单,涉及到django的url参数获取还有mysql数据库的访问

于是先获取url参数,并不打算使用正则来获取,因为获取到的参数题目要求使用”?”来拿,即使用get方法获取

百度之,明白可以使用 在试图中函数传入参数(request)的一个get方式来获得,获得的是一个字典,于是索引之

获取参数

成功获取到参数:这里注意:
必须要给前端有一个返回值(也就是return)否则前端就不知道干嘛了

我们这里要实现的比较简单,所以是用了 HttpResponse 的方式来返回,当然如果有模板可以通过 render的方式返回(具体方法请自百度之)

然后本来打算使用 MySQLdb 的方式连接sql服务器,但是这里始终装不上,看了看网上的解决方案,感到很麻烦,于是寻求别的扩展(下面有梗)

评论

因为需要装VS来解决这个问题,于是看到一个很好玩的评论:确实老梗了······

然后找到了mysql.connector然后安装

pip install –allow-external mysql-connector-python

然后跟他沟通,发现真的有在IT行业干,不知道phpmyadmin是什么的

然后给她教如何创建数据库,表一类的

然后发现他是在不懂这些是什么

然后就没有然后了·········

于是写了一个自动脚本创建:

import mysql.connector
config = {'host':'127.0.0.1','user':'test','password':'12345'}
cnn = mysql.connector.connect(**config)
cur = cnn.cursor()
sql_list = ["CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci",
"USE test",
"""
create table loginfo
(
  id int not null,
  datetime char(15) not null,
  message varchar(225) not null
)engine=innodb default charset=utf8 auto_increment=1
"""]
try:
    for sql in sql_list:
        cur.execute(sql)
except mysql.connector.Error as e:
    print('insert datas error!{}'.format(e))
finally:
    cur.close()
    cnn.close()

下面是获得url(通过get方式)的方法:

name = response.GET['message']

存入数据库:

config = {'host':'127.0.0.1',
          'user':'test',
          'password':'12345',
          'database':'test',
          }
    try:
        cnn=mysql.connector.connect(**config)
    except mysql.connector.Error as e:
        print('connect fails!{}'.format(e))
    id_my = 1
    time = datetime.datetime.now().strftime("%y-%m-%d %H:%M:%S")
    sql = "insert into loginfo (id,datetime,message) values (%s,%s,%s)"
    data = (id_my,time,name)
    cursor=cnn.cursor()
    try:
        cursor.execute(sql,data)
        cnn.commit()
    except mysql.connector.Error as e:
        print('insert datas error!{}'.format(e))
    finally:
        cursor.close()
        cnn.close()
    return HttpResponse('Hello! ' + name)

相信大家懂,要替换这里面的配置来连接自己的数据库。
效果实现也是还好的:

效果实现

我对这位兄弟也尽心了·····

出去吃饭。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇