update mock function
This commit is contained in:
		
							
								
								
									
										127
									
								
								app.py
									
									
									
									
									
								
							
							
						
						
									
										127
									
								
								app.py
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
from flask import Flask, redirect, url_for, render_template, request, flash
 | 
					from flask import Flask, redirect, url_for, render_template, request, flash
 | 
				
			||||||
from models import db, Contact, User, Company, Trans, Inquery
 | 
					from models import db, Contact, User
 | 
				
			||||||
from forms import ContactForm, CompanyForm, TransForm, InqueryForm
 | 
					from forms import ContactForm
 | 
				
			||||||
from flask_login import LoginManager, current_user, login_user, login_required
 | 
					from flask_login import LoginManager, current_user, login_user, login_required
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -149,79 +149,100 @@ def contacts_delete():
 | 
				
			|||||||
@app.route("/test1", methods=('GET', 'POST'))
 | 
					@app.route("/test1", methods=('GET', 'POST'))
 | 
				
			||||||
@login_required
 | 
					@login_required
 | 
				
			||||||
def test1():
 | 
					def test1():
 | 
				
			||||||
    c1 = Company()
 | 
					    c1 = dict()
 | 
				
			||||||
    c1.name = '大连丰达海产品有限公司'
 | 
					    c1['account'] = '15120201012'
 | 
				
			||||||
    c1.city = '辽宁省大连市'
 | 
					    c1['ip'] = '23.14.234.12'
 | 
				
			||||||
    c1.date = '2018-09-02'
 | 
					    c1['location'] = '河南郑州'
 | 
				
			||||||
 | 
					    c1['isp'] = '中国联通'
 | 
				
			||||||
 | 
					    c1['cnt1'] = '3'
 | 
				
			||||||
 | 
					    c1['cnt2'] = '2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    c2 = Company()
 | 
					    c2 = dict()
 | 
				
			||||||
    c2.name = '北京斯科特科技有限公司'
 | 
					    c2['account'] = '15120210128'
 | 
				
			||||||
    c2.city = '北京市'
 | 
					    c2['ip'] = '12.221.21.2'
 | 
				
			||||||
    c2.date = '2020-11-29'
 | 
					    c2['location'] = '广州深圳'
 | 
				
			||||||
 | 
					    c2['isp'] = '中国联通'
 | 
				
			||||||
 | 
					    c2['cnt1'] = '1'
 | 
				
			||||||
 | 
					    c2['cnt2'] = '1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    c3 = Company()
 | 
					    c3 = dict()
 | 
				
			||||||
    c3.name = '大连罗森有限公司'
 | 
					    c3['account'] = '15220201214'
 | 
				
			||||||
    c3.city = '辽宁省大连市'
 | 
					    c3['ip'] = '122.23.11.25'
 | 
				
			||||||
    c3.date = '2020-12-22'
 | 
					    c3['location'] = '北京'
 | 
				
			||||||
 | 
					    c3['isp'] = '中国电信'
 | 
				
			||||||
 | 
					    c3['cnt1'] = '8'
 | 
				
			||||||
 | 
					    c3['cnt2'] = '4'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    companies = []
 | 
					    data = []
 | 
				
			||||||
    companies.append(c1)
 | 
					    data.append(c1)
 | 
				
			||||||
    companies.append(c2)
 | 
					    data.append(c2)
 | 
				
			||||||
    companies.append(c3)
 | 
					    data.append(c3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return render_template('web/test1.html', contacts=companies)
 | 
					    return render_template('web/test1.html', contacts=data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@app.route("/test2", methods=('GET', 'POST'))
 | 
					@app.route("/test2", methods=('GET', 'POST'))
 | 
				
			||||||
@login_required
 | 
					@login_required
 | 
				
			||||||
def test2():
 | 
					def test2():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    t1 = Trans()
 | 
					    t1 = dict()
 | 
				
			||||||
    t1.name = '大连丰达海产品有限公司'
 | 
					    t1['account'] = '15220201027'
 | 
				
			||||||
    t1.number = 1
 | 
					    t1['login'] = '2021-02-28 12:16:23'
 | 
				
			||||||
    t1.price = 3500
 | 
					    t1['duration'] = '41'
 | 
				
			||||||
 | 
					    t1['total'] = '953'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    t2 = Trans()
 | 
					    t2 = dict()
 | 
				
			||||||
    t2.name = '大连罗森有限公司'
 | 
					    t2['account'] = '15220201214'
 | 
				
			||||||
    t2.number = 3
 | 
					    t2['login'] = '2021-02-22 09:23:51'
 | 
				
			||||||
    t2.price = 3500
 | 
					    t2['duration'] = '342'
 | 
				
			||||||
 | 
					    t2['total'] = '1234'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    t3 = Trans()
 | 
					    t3 = dict()
 | 
				
			||||||
    t3.name = '大连罗森有限公司'
 | 
					    t3['account'] = '15220210129'
 | 
				
			||||||
    t3.number = 10
 | 
					    t3['login'] = '2020-12-31 12:34:22'
 | 
				
			||||||
    t3.price = 3000
 | 
					    t3['duration'] = '12'
 | 
				
			||||||
 | 
					    t3['total'] = '31'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    t4 = Trans()
 | 
					    t4 = dict()
 | 
				
			||||||
    t4.name = '大连丰达海产品有限公司'
 | 
					    t4['account'] = '15320201030'
 | 
				
			||||||
    t4.number = 5
 | 
					    t4['login'] = '2021-01-03 20:12:34'
 | 
				
			||||||
    t4.price = 3300
 | 
					    t4['duration'] = '434'
 | 
				
			||||||
 | 
					    t4['total'] = '1356'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    trans_list = []
 | 
					    data = []
 | 
				
			||||||
    trans_list.append(t1)
 | 
					    data.append(t1)
 | 
				
			||||||
    trans_list.append(t2)
 | 
					    data.append(t2)
 | 
				
			||||||
    trans_list.append(t3)
 | 
					    data.append(t3)
 | 
				
			||||||
    trans_list.append(t4)
 | 
					    data.append(t4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return render_template('web/test2.html', contacts=trans_list)
 | 
					    return render_template('web/test2.html', contacts=data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@app.route("/test3", methods=('GET', 'POST'))
 | 
					@app.route("/test3", methods=('GET', 'POST'))
 | 
				
			||||||
@login_required
 | 
					@login_required
 | 
				
			||||||
def test3():
 | 
					def test3():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    i1 = Inquery()
 | 
					    d1 = dict()
 | 
				
			||||||
    i1.name = '大连罗森有限公司'
 | 
					    d1['account'] = '15220210129'
 | 
				
			||||||
    i1.date = '2021-01-06'
 | 
					    d1['count'] = 9
 | 
				
			||||||
    i1.subject = '关于产品有效期问题'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    i2 = Inquery()
 | 
					    d2 = dict()
 | 
				
			||||||
    i2.name = '大连罗森有限公司'
 | 
					    d2['account'] = '15320201013'
 | 
				
			||||||
    i2.date = '2021-01-11'
 | 
					    d2['count'] = 22
 | 
				
			||||||
    i2.subject = '关于产品售后支持'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    inqueries = []
 | 
					    d3 = dict()
 | 
				
			||||||
    inqueries.append(i1)
 | 
					    d3['account'] = '15320210302'
 | 
				
			||||||
    inqueries.append(i2)
 | 
					    d3['count'] = 78
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return render_template('web/test3.html', contacts=inqueries)
 | 
					    d4 = dict()
 | 
				
			||||||
 | 
					    d4['account'] = '15220210129'
 | 
				
			||||||
 | 
					    d4['count'] = 12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    data = []
 | 
				
			||||||
 | 
					    data.append(d1)
 | 
				
			||||||
 | 
					    data.append(d2)
 | 
				
			||||||
 | 
					    data.append(d3)
 | 
				
			||||||
 | 
					    data.append(d4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return render_template('web/test3.html', contacts=data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								forms.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								forms.py
									
									
									
									
									
								
							@@ -10,20 +10,4 @@ class ContactForm(FlaskForm):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
   # surname = StringField('Surname', validators=[Length(min=-1, max=100, message='You cannot have more than 100 characters')])
 | 
					   # surname = StringField('Surname', validators=[Length(min=-1, max=100, message='You cannot have more than 100 characters')])
 | 
				
			||||||
    # email = StringField('E-Mail', validators=[Email(), Length(min=-1, max=200, message='You cannot have more than 200 characters')])
 | 
					    # email = StringField('E-Mail', validators=[Email(), Length(min=-1, max=200, message='You cannot have more than 200 characters')])
 | 
				
			||||||
    # phone = StringField('Phone', validators=[Length(min=-1, max=20, message='You cannot have more than 20 characters')])
 | 
					    # phone = StringField('Phone', validators=[Length(min=-1, max=20, message='You cannot have more than 20 characters')])
 | 
				
			||||||
 | 
					 | 
				
			||||||
class CompanyForm(FlaskForm):
 | 
					 | 
				
			||||||
    name = StringField('公司名', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    city = StringField('所在城市', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    date = StringField('登录日期', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class TransForm(FlaskForm):
 | 
					 | 
				
			||||||
    name = StringField('公司名', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    date = StringField('采购日期', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    number = StringField('采购数量', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    price = StringField('单价', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class InqueryForm(FlaskForm):
 | 
					 | 
				
			||||||
    name = StringField('公司名', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    date = StringField('问询日期', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
    subject = StringField('问询主题', validators=[DataRequired(), Length(min=-1, max=30, message='用户名需要控制在30个字符以内')])
 | 
					 | 
				
			||||||
							
								
								
									
										17
									
								
								models.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								models.py
									
									
									
									
									
								
							@@ -26,20 +26,3 @@ class User():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def get_id(id):
 | 
					    def get_id(id):
 | 
				
			||||||
        return 1
 | 
					        return 1
 | 
				
			||||||
 | 
					 | 
				
			||||||
class Company():
 | 
					 | 
				
			||||||
    name = ''
 | 
					 | 
				
			||||||
    city = ''
 | 
					 | 
				
			||||||
    date = ''
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Trans():
 | 
					 | 
				
			||||||
    name = ''
 | 
					 | 
				
			||||||
    date = ''
 | 
					 | 
				
			||||||
    number = ''
 | 
					 | 
				
			||||||
    price = ''
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Inquery():
 | 
					 | 
				
			||||||
    name = ''
 | 
					 | 
				
			||||||
    date = ''
 | 
					 | 
				
			||||||
    subject = ''
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,9 +36,9 @@
 | 
				
			|||||||
				<li class="dropdown">
 | 
									<li class="dropdown">
 | 
				
			||||||
					<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">客户信息<span class="caret"></span></a>
 | 
										<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">客户信息<span class="caret"></span></a>
 | 
				
			||||||
					<ul class="dropdown-menu">
 | 
										<ul class="dropdown-menu">
 | 
				
			||||||
					  <li><a href="{{ url_for('test1') }}">客户公司信息</a></li>
 | 
										  <li><a href="{{ url_for('test1') }}">IP登陆地统计</a></li>
 | 
				
			||||||
					  <li><a href="{{ url_for('test2') }}">购买记录</a></li>
 | 
										  <li><a href="{{ url_for('test2') }}">登陆市场统计</a></li>
 | 
				
			||||||
					  <li><a href="{{ url_for('test3') }}">客户咨询记录</a></li>
 | 
										  <li><a href="{{ url_for('test3') }}">登录次数统计</a></li>
 | 
				
			||||||
					</ul>
 | 
										</ul>
 | 
				
			||||||
				</li>
 | 
									</li>
 | 
				
			||||||
			</ul>
 | 
								</ul>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,27 @@
 | 
				
			|||||||
{% extends 'layouts/master.html' %}
 | 
					{% extends 'layouts/master.html' %}
 | 
				
			||||||
{% block title %}View{% endblock %}
 | 
					{% block title %}View{% endblock %}
 | 
				
			||||||
{% block body %}
 | 
					{% block body %}
 | 
				
			||||||
<h1>Contacts</h1>
 | 
					<h1>IP登陆地统计</h1>
 | 
				
			||||||
<table class="table table-hover">
 | 
					<table class="table table-hover">
 | 
				
			||||||
	<thead>
 | 
						<thead>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th scope="col">公司名称</th>
 | 
								<th scope="col">账号</th>
 | 
				
			||||||
			<th scope="col">所在城市</th>
 | 
								<th scope="col">上次登录IP</th>
 | 
				
			||||||
			<th scope="col">登录日期</th>
 | 
								<th scope="col">上次登陆地</th>
 | 
				
			||||||
			<td></td>
 | 
								<th scope="col">运营商</th>
 | 
				
			||||||
 | 
								<th scope="col">登录IP地址统计(省)</th>
 | 
				
			||||||
 | 
								<th scope="col">登陆地统计(省)</th>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
	<tbody>
 | 
						<tbody>
 | 
				
			||||||
	{% for contact in contacts %}
 | 
						{% for contact in contacts %}
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>{{ contact.name }}</td>
 | 
								<td>{{ contact['account'] }}</td>
 | 
				
			||||||
			<td>{{ contact.city }}</td>
 | 
								<td>{{ contact['ip'] }}</td>
 | 
				
			||||||
			<td>{{ contact.date }}</td>
 | 
								<td>{{ contact['location'] }}</td>
 | 
				
			||||||
 | 
								<td>{{ contact['isp'] }}</td>
 | 
				
			||||||
 | 
								<td>{{ contact['cnt1'] }}</td>
 | 
				
			||||||
 | 
								<td>{{ contact['cnt2'] }}</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	{% endfor %}
 | 
						{% endfor %}
 | 
				
			||||||
	</tbody>
 | 
						</tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,24 @@
 | 
				
			|||||||
{% extends 'layouts/master.html' %}
 | 
					{% extends 'layouts/master.html' %}
 | 
				
			||||||
{% block title %}View{% endblock %}
 | 
					{% block title %}View{% endblock %}
 | 
				
			||||||
{% block body %}
 | 
					{% block body %}
 | 
				
			||||||
<h1>Contacts</h1>
 | 
					<h1>登录时间统计</h1>
 | 
				
			||||||
<table class="table table-hover">
 | 
					<table class="table table-hover">
 | 
				
			||||||
	<thead>
 | 
						<thead>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th scope="col">公司名称</th>
 | 
								<th scope="col">账号</th>
 | 
				
			||||||
			<th scope="col">购买数量</th>
 | 
								<th scope="col">上次登录时间</th>
 | 
				
			||||||
			<th scope="col">单价</th>
 | 
								<th scope="col">上次登陆时长</th>
 | 
				
			||||||
 | 
								<th scope="col">总时长</th>
 | 
				
			||||||
			<td></td>
 | 
								<td></td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
	<tbody>
 | 
						<tbody>
 | 
				
			||||||
	{% for contact in contacts %}
 | 
						{% for contact in contacts %}
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>{{ contact.name }}</td>
 | 
								<td>{{ contact['account'] }}</td>
 | 
				
			||||||
			<td>{{ contact.number}}</td>
 | 
								<td>{{ contact['login'] }}</td>
 | 
				
			||||||
			<td>{{ contact.price}}</td>
 | 
								<td>{{ contact['duration']}}</td>
 | 
				
			||||||
 | 
								<td>{{ contact['total']}}</td>
 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	{% endfor %}
 | 
						{% endfor %}
 | 
				
			||||||
	</tbody>
 | 
						</tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,19 @@
 | 
				
			|||||||
{% extends 'layouts/master.html' %}
 | 
					{% extends 'layouts/master.html' %}
 | 
				
			||||||
{% block title %}View{% endblock %}
 | 
					{% block title %}View{% endblock %}
 | 
				
			||||||
{% block body %}
 | 
					{% block body %}
 | 
				
			||||||
<h1>Contacts</h1>
 | 
					<h1>登录次数统计</h1>
 | 
				
			||||||
<table class="table table-hover">
 | 
					<table class="table table-hover">
 | 
				
			||||||
	<thead>
 | 
						<thead>
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<th scope="col">公司名称</th>
 | 
								<th scope="col">账号</th>
 | 
				
			||||||
			<th scope="col">咨询时间</th>
 | 
								<th scope="col">登录次数</th>
 | 
				
			||||||
			<th scope="col">咨询主题</th>
 | 
					 | 
				
			||||||
			<td></td>
 | 
					 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	</thead>
 | 
						</thead>
 | 
				
			||||||
	<tbody>
 | 
						<tbody>
 | 
				
			||||||
	{% for contact in contacts %}
 | 
						{% for contact in contacts %}
 | 
				
			||||||
		<tr>
 | 
							<tr>
 | 
				
			||||||
			<td>{{ contact.name }}</td>
 | 
								<td>{{ contact['account'] }}</td>
 | 
				
			||||||
			<td>{{ contact.date }}</td>
 | 
								<td>{{ contact['count'] }}</td>
 | 
				
			||||||
			<td>{{ contact.subject }}</td>
 | 
					 | 
				
			||||||
		</tr>
 | 
							</tr>
 | 
				
			||||||
	{% endfor %}
 | 
						{% endfor %}
 | 
				
			||||||
	</tbody>
 | 
						</tbody>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user