Django掃碼抽獎平臺的配置過程詳解
安裝源
pip install django2.2
pip install mysqlclient1.4.6
使用pyharm 創(chuàng)建django 項目
django基本配置

在settings.py中設(shè)置數(shù)據(jù)庫鏈接

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'km',
'USER': 'root',
'PASSWORD': 'n4',
'HOST': 'na.cc',
'PORT': '3306'
}
}
在settings.py里面配置好端口:ALLOWED_HOSTS = ['*']
配置語言 LANGUAGE_CODE = ‘zh-hans'
配置時區(qū)TIME_ZONE = ‘Asia/Shanghai'
設(shè)置時間 USE_TZ = False
創(chuàng)建APP
startapp wuzhengteng
在apps中添加 ‘wuzhengteng',

在models.py中配置數(shù)據(jù)庫
from django.db import models # Create your models here. class User(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=10) tel = models.CharField(max_length=11) def __str__(self): return self.name
在manage.py中執(zhí)行
# 收集數(shù)據(jù)不同 makemigrations # 寫入數(shù)據(jù)庫 migrate # 創(chuàng)建超級管理員 createsuperuser
將查詢寫入admin
from django.contrib import admin from wuzhengteng.models import User # Register your models here. class UserAdmin(admin.ModelAdmin): list_display = ['id', 'name', 'tel'] admin.site.register(User, UserAdmin)
檢查數(shù)據(jù)庫是否創(chuàng)建成功
http://127.0.0.1:8000/admin
登入后

配置前臺的用戶查看界面
url路徑
from django.contrib import admin
from django.urls import path
from django.views.generic import TemplateView
from wuzhengteng import views #打開views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.user, name='home') # 添加指向到views
]
配置views
from django.shortcuts import render
from .models import User # 連接數(shù)據(jù)庫
# Create your views here.
def user(request):
all_user = User.objects.all() # 查詢?nèi)?
return render(request, 'index.html', {
'all_user': all_user, # 將來結(jié)果返回html頁面
})
前端頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<table border="1">
<tr>
<td>用戶</td>
<td>手機</td>
</tr>
{% for post in all_user %}
<tr>
<td>{{post.name}}</td>
<td>{{post.tel}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
測試訪問127.0.0.1:8000

添加用戶界面
配置路由 path(‘scan', views.scan, name=“scan”)
views中插入
web頁面scan.htm
def scan(request):
result = ''
if request.method == 'POST':
name = request.POST.get('name')
tel = request.POST.get('tel')
print(tel)
db = User()
db.name = name
db.tel = tel
db.save()
result = 'success'
return render(request, 'scan.html', {'result': result})
else:
return render(request, 'scan.html')
web頁面scan.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>掃碼登入</title>
</head>
<body>
<div style="width: 210px;margin:0 auto">
<form method="post">
{% csrf_token %}
<label for="name">姓名:</label>
<input type="text" name="name" style="width: 150px"><br><br>
<label for="tel">電話:</label>
<input type="text" name="tel" style="width: 150px"><br><br>
<input type="reset"> <input type="submit">
</form>
{% if result %}
<p style="text-align: center">添加成功</p>
{% endif %}
</div>
</body>


前端抽獎界面
url中添加
path(‘luck', views.luck, name=“l(fā)uck”)
views中添加
def luck(request):
all_user = User.objects.all()
return render(request, 'luck.html', {
'all_user': all_user,
})
setting里面設(shè)置靜態(tài)路徑
STATIC_URL = '/static/' STATICFILES_DIRS=( os.path.join(BASE_DIR,"static"), )
前端頁面
<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery隨機抽獎 - 站長素材</title>
<head>
<script id="jquery_172" type="text/javascript" class="library" src="static/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){
var alldata = new Array({% for post in all_user %}"{{post.name}}",{% endfor %});
var num = alldata.length - 1;
var show = $("#show");
var btn = $("#btn");
var open = false;
function change(){
var randomVal = Math.round(Math.random() * num);
var prizeName = alldata[randomVal];
show.text(prizeName);
}
function run(){
if(!open){
timer=setInterval(change,5);
btn.removeClass('start').addClass('stop').text('停止');
open = true;
}else{
clearInterval(timer);
btn.removeClass('stop').addClass('start').text('開始抽獎');
open = false;
}
}
btn.click(function(){run();})
})
</script>
<style>
body{ background:#fff;}
.wrap{ width:300px; margin:100px auto; font-family:"微軟雅黑";}
.show{ width:300px; height:300px; background-color:#ff3300; line-height:300px; text-align:center; color:#fff; font-size:28px; -moz-border-radius:150px; -webkit-border-radius:150px; border-radius:150px; background-image: -webkit-gradient(linear,0% 0%, 0% 100%, from(#FF9600), to(#F84000), color-stop(0.5,#fb6c00)); -moz-box-shadow:2px 2px 10px #BBBBBB; -webkit-box-shadow:2px 2px 10px #BBBBBB; box-shadow:2px 2px 10px #BBBBBB;}
.btn a{ display:block; width:120px; height:50px; margin:30px auto; text-align:center; line-height:50px; text-decoration:none; color:#fff; -moz-border-radius:25px; -webkit-border-radius:25px; border-radius:25px;}
.btn a.start{ background:#80b600;}
.btn a.start:hover{ background:#75a700;}
.btn a.stop{ background:#00a2ff;}
.btn a.stop:hover{ background:#008bdb;}
</style>
</head>
<body>
<div class="wrap">
<div class="show" id="show">點擊按鈕開始抽獎</div>
<div class="btn">
<a href="javascript:void(0)" rel="external nofollow" class="start" id="btn">開始抽獎</a>
</div>
</div>
</body>
</html>
jq文件jquery-1.7.2.min.js
放在static 文件夾下

測試

到此這篇關(guān)于Django掃碼抽獎平臺的文章就介紹到這了,更多相關(guān)Django掃碼抽獎內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python sklearn KFold 生成交叉驗證數(shù)據(jù)集的方法
今天小編就為大家分享一篇Python sklearn KFold 生成交叉驗證數(shù)據(jù)集的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python開發(fā)中range()函數(shù)用法實例分析
這篇文章主要介紹了python開發(fā)中range()函數(shù)用法,以實例形式較為詳細(xì)的分析了Python中range()函數(shù)遍歷列表的相關(guān)技巧,需要的朋友可以參考下2015-11-11
python實現(xiàn)圖書館研習(xí)室自動預(yù)約功能
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)圖書館研習(xí)室自動預(yù)約功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
Keras之fit_generator與train_on_batch用法
這篇文章主要介紹了Keras之fit_generator與train_on_batch用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python實現(xiàn)企業(yè)微信定時發(fā)送文本消息的示例代碼
這篇文章主要介紹了python實現(xiàn)企業(yè)微信定時發(fā)送文本消息的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11

